您当前的位置:首页 > 百宝箱

水仙花数编程题c语言及答案

2024-09-30 21:05:45 作者:石家庄人才网

本篇文章给大家带来《水仙花数编程题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