1.问题:输出所有的“水仙花数”。所谓“水仙花数”是指一个3位数,其各位数字立方之和等于该数本身。
例如,153是一个水仙花数,因为153=1³+5³+3³。
2.思路:水仙花数的解题思路是把给出的某个三位数的个位、十位、百位分别拆分,并求其立方和。
3.程序流程图:
4.代码实现:
#include <iostream>
using namespace std;
int fact(int x)
{
int k=100;
int count=0;
int g;
g=x;
while(k>0){
count=count+(x/k)*(x/k)*(x/k);
x=x%k;
k=k/10;
}
if(count==g)
return 1;
else
return 0;
}
int main()
{
for(int i=100;i<1000;i++){
if(fact(i))
cout<<"输出的水仙花数为"<<i<<endl;
}
return 0;
}