就是从100循环到999,循环体中判断当前数值是否符合要求;
取每位上的数值,这个思路两个个:
1> 将数对10取余后得出个为,除以10将结果再对10取余得到十位,以此下去直到原来数为0
2>将数值转化成字符串,然后字符串每个字符迭代(这个效率不高)
代码:
- int main()
- {
- int i,j,k,sum;
- for(i=100;i<=999;i++)
- {
- j=i;
- sum=0;
- for(;j;j/=10)
- {
- k=j%10;
- sum+=k*k*k;
- }
-
- if(sum==i)
- printf("%d 是水仙花数\n",i);
- }
- return 0;
- }
复制代码 |