有一种数字比较特别,称为“水仙花数”,这样的数是指:该数是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; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥20 使用Photon PUN2解决游戏得分同步的问题
- ¥15 微带串馈天线阵列每个阵元宽度计算
- ¥15 keil的map文件中Image component sizes各项意思
- ¥30 BC260Y用MQTT向阿里云发布主题消息一直错误
- ¥20 求个正点原子stm32f407开发版的贪吃蛇游戏
- ¥15 划分vlan后,链路不通了?
- ¥20 求各位懂行的人,注册表能不能看到usb使用得具体信息,干了什么,传输了什么数据
- ¥15 Vue3 大型图片数据拖动排序
- ¥15 Centos / PETGEM
- ¥15 划分vlan后不通了