1、编写一个类,提供打印n(n>=3,n<10)位水仙花数的功能。
详细描述:以三位数为例,如果它的个位的立方、十位的立方、百位的立方这三者之和,与这个数本身相等,则该数称为水仙花数。如153=13+53+33,故153是一个水仙花数,n运行时输入,需要编写一个方法,或者叫函数;此外,寻找水仙花数,需要编写一个循环。在定义了百位、十位、个位三个整型变量后,用下面的代码可以实现功能;
实现代码:
#include<iostream>
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<c;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<flag2;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<<i<<endl;
sum=0;
}
}
int main()
{
intmihanshu(int x,int c);
flower s1;
intN;
while(1)
{
cout<<"**********************"<<endl;
cout<<"Pleaseinput N: ";
N=s1.get();
s1.SXH();
}
return0;
}