输出所有的“水仙花数”,所有“水仙花数”是指一个3位数,其各位数字立方和等于该本身。例如,153是水仙花数,因为153=13+53+33 用c语言编上面的程序,不要用数组
时间: 2024-10-24 14:12:05 浏览: 24
输出所有的水仙花数,所谓水仙花数是指一个3位数,其各个位上数字立方和等于其本身。
在 C 语言中,我们可以编写一个简单的循环结构来找出所有的三位“水仙花数”。下面是一个示例程序:
```c
#include <stdio.h>
int is NarcissisticNumber(int num) {
int digits[4], sum = 0;
// 分离每一位数字
while (num != 0) {
digits[sum++] = num % 10; // 取个位并存储
num /= 10;
}
// 检查每个数字是否满足条件
for (int i = 0; i < 3; i++) {
if (digits[i] * digits[i] * digits[i] != digits[sum - 1]) { // 如果不满足立方和等于原数
return 0;
}
}
return 1; // 如果所有数字都满足条件,则返回1
}
int main() {
int start = 100, end = 999;
printf("水仙花数:\n");
for (int num = start; num <= end; num++) {
if (is NarcissisticNumber(num)) {
printf("%d\n", num);
}
}
return 0;
}
```
这个程序首先定义了一个辅助函数 `is NarcissisticNumber` 来检查一个整数是否是水仙花数。然后,在 `main` 函数中从100到999遍历每一个数,如果它是水仙花数,就打印出来。
阅读全文