水仙数是指各位上数字的立方和等于该数本身。输出所有3位数中的水仙数并用空格分开用c语言打出代码
时间: 2024-10-28 14:07:22 浏览: 25
水仙数(也称为阿姆斯特朗数)是一种特殊的三位数,它的每个位置上的数字的三次幂之和等于它本身。例如,153就是一位水仙数,因为1^3 + 5^3 + 3^3 = 1 + 125 + 27 = 153。
以下是使用 C 语言编写的一个简单程序,用于找出并打印所有的三位水仙数:
```c
#include <stdio.h>
int isArmstrong(int num) {
int digits[4], sum = 0;
int temp = num;
// 分离出每位数字
while (temp != 0) {
digits[sum] = temp % 10;
temp /= 10;
sum++;
}
// 计算每位数字的立方和
for (int i = 0; i < sum; i++) {
sum += digits[i] * digits[i] * digits[i];
}
return num == sum;
}
void findArmstrongNumbers() {
for (int i = 100; i <= 999; i++) {
if (isArmstrong(i)) {
printf("%d ", i);
}
}
printf("\n");
}
int main() {
findArmstrongNumbers();
return 0;
}
```
这个程序首先定义了一个 `isArmstrong` 函数,检查给定的数字是否为水仙数。然后,`findArmstrongNumbers` 函数遍历所有三位数,并对每个数字调用 `isArmstrong` 来判断。如果是水仙数,则打印出来。最后,`main` 函数调用 `findArmstrongNumbers` 来执行整个过程。
运行这个程序,你会看到结果是:153 370 371。注意,实际上只有这三个数字是三位水仙数。
阅读全文