C语言第五章课后习题3:输出所有的“水仙花数”

0

输出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本身。例如,153是一个水仙花数,因为153=1^3+5^3+3^3

题目分析:因为在之前的章节中,有一道题是“输入一组不多于5位的正整数,要求分别输出每一位数字”。通过搜索得知求每一位的数字有公式,所以这道题就简单多了,公式分别为:

求个位:num%10

求十位:num%100/10

求百位:num%1000/100

求千位:num%10000/1000

代码如下:

1
2
3
4
5
6
7
8
9
 int c1, c2, c3; //定义个十百位
 for (int i=100; i<1000; i++) //水仙花数字是三位,设定范围
 {
 c1=i%10;
 c2=i%100/10;
 c3=i%1000/100;
  if (i==(pow(c1,3)+pow(c2,3)+pow(c3,3)))
   printf("%d\n", i);
 }

结果输出 153、370、371、407

— cloudxiao 2009,9,28

No Comments

Leave A Reply