3.编程题(20分)'题目:编写程序,在+100999=+位整数范围内找出水仙花数?
题目描述:
编写程序,在+100999=+位整数范围内找出所有的水仙花数。
解题思路:
水仙花数指一个n位十进制数,其各位数字的n次方之和等于该数本身。因此,我们可以使用循环遍历的方式,在+100999=+位整数范围内找出所有的水仙花数,并输出结果。
具体实现步骤如下:
使用一个循环,遍历所有+100999=+位整数。
将当前数字拆分为各个位数,计算各位数字的n次方之和。
如果该数字等于各位数字的n次方之和,则将其输出。
以下是C语言实现代码:
#include <stdio.h>
// 求n的m次方
int power(int n, int m) {
int result = 1;
for (int i = 0; i < m; i++) {
result *= n;
}
return result;
}
int main() {
for (int i = 100; i <= 999; i++) {
int sum = 0;
int temp = i;
while (temp > 0) {
int digit = temp % 10;
sum += power(digit, 3);
temp /= 10;
}
if (sum == i) {
printf("%d\n", i);
}
}
return 0;
}
在上述代码中,我们定义了一个power函数,用于计算一个数字的n次方,其中n和m分别表示数字和次方数。在main函数中,我们使用一个循环遍历所有+100999=+位整数,并计算各位数字的3次方之和。如果该数字等于各位数字的3次方之和,则将其输出。最终输出结果如下:
153
370
371
407