c++语言输出水仙花数,C++输出N位水仙花数

1、编写一个类,提供打印n(n>=3,n<10)位水仙花数的功能。

详细描述:以三位数为例,如果它的个位的立方、十位的立方、百位的立方这三者之和,与这个数本身相等,则该数称为水仙花数。如153=13+53+33,故153是一个水仙花数,n运行时输入,需要编写一个方法,或者叫函数;此外,寻找水仙花数,需要编写一个循环。在定义了百位、十位、个位三个整型变量后,用下面的代码可以实现功能;

实现代码:

#include

using namespace std;

class flower                 //定义一个类flower

{

private:

intn;

public:

voidSXH();

intget();

};

int flower::get()

{

cin>>n;

return n;

}

int mihanshu(int x,int c)   //定义一个幂函数

{

inti,num;

if(c==1)

{

num=x;

}

else

{

num=x;

for(i=1;i

{

num=num*x;

}

}

returnnum;

}

void flower::SXH()          //判断水仙花函数

{

intflag1,flag2,array[10],i,j,sum,flag3;

flag1=mihanshu(10,(n-1));

flag2=mihanshu(10,n);

for(i=flag1;i

{

flag3=i;

sum=0;

for(j=1;j<=n;j++)

{

array[j-1]=flag3%10;

flag3=flag3/10;

array[j-1]=mihanshu(array[j-1],n);

sum=sum+array[j-1];

}

if(sum==i)

cout<

sum=0;

}

}

int main()

{

intmihanshu(int x,int c);

flower s1;

intN;

while(1)

{

cout<

cout<

N=s1.get();

s1.SXH();

}

return0;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值