水仙花数编程题c语言及答案
本篇文章给大家带来《水仙花数编程题c语言及答案》,石家庄人才网对文章内容进行了深度展开说明,希望对各位有所帮助,记得收藏本站。
题目:
打印出所有的 "水仙花数 ",所谓 "水仙花数 "是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个 "水仙花数 ",因为153=1的三次方+5的三次方+3的三次方。
程序分析:
利用for循环控制100-999个数,每个数分解出个位,十位,百位。
程序源代码:
#include <stdio.h>int main() { int i, j, k, n; printf("水仙花数有:\n"); for (n = 100; n < 1000; n++) { i = n / 100; // 百位 j = n / 10 % 10; // 十位 k = n % 10; // 个位 if (i * 100 + j * 10 + k == i * i * i + j * j * j + k * k * k) { printf("%d\n", n); } } return 0;}
输出结果:
水仙花数有:153370371407
代码解析:
1. `#include <stdio.h>`:包含标准输入输出库,以便使用 `printf` 函数输出结果。
2. `int main() { ... }`:程序的主函数,程序从这里开始执行。
3. `int i, j, k, n;`:声明四个整型变量,`i` 用于存储百位数,`j` 用于存储十位数,`k` 用于存储个位数,`n` 用于遍历100到999之间的所有三位数。
4. `printf("水仙花数有:\n");`:打印提示信息,告诉用户接下来要输出水仙花数。
5. `for (n = 100; n < 1000; n++) { ... }`:使用 `for` 循环遍历100到999之间的所有三位数。
6. `i = n / 100;`:计算百位数,例如153 / 100 = 1。
7. `j = n / 10 % 10;`:计算十位数,例如153 / 10 = 15,15 % 10 = 5。
8. `k = n % 10;`:计算个位数,例如153 % 10 = 3。
9. `if (i * 100 + j * 10 + k == i * i * i + j * j * j + k * k * k) { ... }`:判断当前三位数是否为水仙花数。如果该数的各个位数的立方和等于该数本身,则该数为水仙花数。
10. `printf("%d\n", n);`:如果当前三位数是水仙花数,则打印该数。
11. `return 0;`:程序正常结束,返回 0。
版权声明:《水仙花数编程题c语言及答案》来自【石家庄人才网】收集整理于网络,不代表本站立场,所有图片文章版权属于原作者,如有侵略,联系删除。
https://www.ymil.cn/baibaoxiang/726.html