有一种数字比较特别,称为“水仙花数”,这样的数是指:该数是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 结构。

abcABC_123
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- qzjhjxj 2022-05-30 16:20关注
供参考:
#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; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报