题目
本题是谭浩强《c语言程序设计》第五章第八题
题目:输出所有3位数的水仙花数,例:153=1的3次方+5的3次方+3的3次方
提示:以下是本篇文章正文内容,欢迎朋友们进行指正,一起探讨,共同进步。
一、解题思路
思路:
1.首先定义3位数的范围:采用for循环遍历100 - 999。
2.定义三位数的个位数:x1 = i % 10,十位x2 = i / 10 % 10, 百位x3 = i / 100;
3…然后逐个遍历,判断条件为(i==x1x1x1+x2x2x2+x3x3x3)
4.把满足条件的输出即可。题可采用两种方式进行作答,第一种是使用for循环求1 - 20的阶乘,第二种是使用递归调用的方法。
二、代码部分
1.引入库
代码如下(示例):
#include <stdio.h>
2.主函数部分
代码如下(示例):
int main() {
int x1, x2, x3;
int i;
for (i = 100; i <= 999; i++)
{
x1 = i % 10;
x2 = i / 10 % 10;
x3 = i / 100;
if (i == x1 * x1*x1 + x2 * x2*x2 + x3 * x3*x3)
printf("%d ", i);
}
return 0;
}
执行结果
输出:153 370 371 407