继续学习喽、关于类的(挥泪洒下我最后的分数)大家帮忙啊

zhangyongnihao1 2009-06-17 09:58:15
设计一个类,判断输入的数是否是Armstrong数(水仙花数),简单点就好。最好有注释的
...全文
26 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
光宇广贞 2009-06-18
  • 打赏
  • 举报
回复
不是有一位大牛给你解决了么?

http://blog.csdn.net/pathuang68/archive/2009/06/12/4262210.aspx
Sou2012 2009-06-18
  • 打赏
  • 举报
回复
帮顶!
风老二 2009-06-18
  • 打赏
  • 举报
回复

#include <stdio.h>
#include <iostream>

using namespace std;

typedef long long lint;

class A{
lint s; //value
static unsigned len; //数长
public:
A():s(0){} //
A& operator=(lint n){ //
s = n; // 重载赋值
len = 0; //初始化长度
if (chk()) cout<<"水仙花"<<ends<<s<<endl;
len = 0; //复位长度
return *this;
}

inline operator lint(){return s;} //类型转换

bool chk(){return (ast(s)-s)?0:1;} //检测是否为百合

static lint ast(lint bb){ //递归实现数分解与幂累积
++len;
lint _tmp = 0;
if(bb/10) _tmp = ast(bb/10);
return _tmp=_tmp+pow(bb%10,len);
}

static lint pow(lint x,lint y){ //pow函数
lint _tmp = 1;
for (int i = 0;i<y;i++) _tmp *=x;
return _tmp;
}
};
unsigned A::len = 0;


istream& operator>>(istream &c,A &t){ //重载>>
lint l;
c>>l;
t=l; //重载A::=
return c;
}


int main()
{
A x;
for (lint i = 1;i<999999;i++)x=i; //六位数的水仙花
do {
cin.sync();
cin.clear();
cin>>x;
} while(x!=0||cin.fail()); //输入零退出



}
风老二 2009-06-18
  • 打赏
  • 举报
回复


#include <stdio.h>
#include <iostream>

using namespace std;

typedef long long lint;

class A{
lint s; //value
static unsigned len; //数长
public:
A():s(0){} //
A& operator=(lint n){ //
s = n; // 重载赋值
len = 0; //初始化长度
if (chk()) cout<<"水仙花"<<ends<<s<<endl;
len = 0; //复位长度
return *this;
}

inline operator lint(){return s;} //类型转换

bool chk(){return (ast(s)-s)?0:1;} //检测是否为百合

static lint ast(lint bb){ //递归实现数分解与幂累积
++len;
lint _tmp = 0;
if(bb/10) _tmp = ast(bb/10);
return _tmp=_tmp+pow(bb%10,len);
}

static lint pow(lint x,lint y){ //pow函数
lint _tmp = 1;
for (int i = 0;i<y;i++) _tmp *=x;
return _tmp;
}
};
unsigned A::len = 0;


istream& operator>>(istream &c,A &t){ //重载>>
lint l;
c>>l;
t=l; //重载A::=
return c;
}


int main()
{
A x;
for (lint i = 1;i<999999;i++)x=i; //六位数的水仙花
do {
cin.sync();
cin.clear();
cin>>x;
} while(x!=0||cin.fail()); //输入零退出



}
vincent_1011 2009-06-18
  • 打赏
  • 举报
回复
半夜顶下接分。。
pathuang68 2009-06-18
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 hikaliv 的回复:]
不是有一位大牛给你解决了么?

http://blog.csdn.net/pathuang68/archive/2009/06/12/4262210.aspx
[/Quote]
顶这个:)
mengde007 2009-06-17
  • 打赏
  • 举报
回复
有问题,先百度;
kingteng 2009-06-17
  • 打赏
  • 举报
回复
这个为什么还要写类呀?建议楼主把帖子都结了就有分拉~~

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧