有一种数字比较特别,称为“水仙花数”,这样的数是指:该数是3 位数,其各位数字的
立方和等于该数本身。例如,153 就是一个水仙花数,因为 153=1~+5*+3°。
请编写程序,打印出所有的水仙花数。
提示:如果要判断某个三位数 number 是否为水仙花数,可以这样判断:
假设该三位数的个位数为 a,十位数为 b,百位数为 c.
a=number%10;
b=
;(请思考,并在空白处填写合适的内容)
c=number/100;
如果 number-a'+b'+e',則该数就是水仙花数。
如果希望将所有的水仙花数打出来,则需要使用循环来按照以上提示依次判断从 100~
999 的每个数是否为水仙花数。
请分别用循环的三种结构来编写程序:while 结构、do-while 结构、for 结构。
供参考:
#include <stdio.h>
int main()
{
int a, b, c;
int i;
for (i = 100; i <= 999; i++)
{
a = i / 100;
b = i / 10 % 10;
c = i % 10;
if ((a * a * a + b * b * b + c * c * c) == i)
printf("%d\n", i);
}
return 0;
}
#include <stdio.h>
int main()
{
int i = 100, n, k, s;
while (i < 1000) {
n = i; s = 0;
while (n) {
k = n % 10;
s += k * k * k;
n /= 10;
}
if (s == i)
printf("%d\n", i);
i++;
}
return 0;
}
#include <stdio.h>
int main()
{
int i = 100, n, k, s;
do{
n = i; s = 0;
while (n) {
k = n % 10;
s += k * k * k;
n /= 10;
}
if (s == i)
printf("%d\n", i);
i++;
} while (i < 1000);
return 0;
}