解题思路:
三位数连续对10取余、连续整除10可分离得到三位数的每一位,将每位的三次方之和与原数比较可判断其是否为水仙花数。
注意事项:
三位数初值应该可以取大点吧...
参考代码:
#include<stdio.h>
int main()
{
int i;
int tpn/*当前三位数的操作副本*/,n=100/*当前三位数*/;
int tp/*三位数中某一位*/,sn/*每位三次方之和*/;
while(n<1000)
{
for(i=1,sn=0,tpn=n;i<=3;i++)
{
tp=tpn%10;
tpn/=10;
sn+=tp*tp*tp;
}
if(sn==n)
{
printf("%d\n",n);
}
n++;
}
return 0;
}
0.0分
0 人评分