输出所有的"水仙花数",所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如,153是水仙花数,因为153=1立方+5立方+3立方
#include <iostream>
using namespace std;
//判断是否是水仙花
int isSxh(int n)
{
int s = 0;
int a = n;
int d = 0;
while(a>0)
{
int d = a%10;
s += (d*d*d);
a = a/10;
}
if(s == n)
return 1;
else
return 0;
}
int main()
{
int i=00;
while(i<=999)
{
if(isSxh(i))
{
if(i==100)
cout << i ;
else
cout << " " << i;
}
i++;
}
return 0;
}
一个循环可以写完。
可以将数n=1000作为循环终止条件,在循环内部n++
水仙花数的计算思路就是计算n的个十百三位数字,求他们的立方和,如果立方和等于n,则打印当前n
设a,b,c为n的个十百三位,a=n%10,b=n/10%10,c=n/100%10。
自己组合一下这些试试看