C语言 水仙花数是一个3位数,它的各位数字的3次幂之和等于它本身。例如, 153=13+53+33是一个水仙花数。编写程序求出所有的水仙花数,并统计水仙花 数的个数。
时间: 2024-12-12 22:25:43 浏览: 40
水仙花数是一种特殊的整数,它由其每一位数字的立方和组成。在C语言中,你可以通过遍历3位数范围内的所有整数,然后计算并验证每个数是否满足水仙花数的条件来实现这个功能。以下是一个简单的C程序示例:
```c
#include <stdio.h>
// 函数声明
int is_armstrong_number(int num);
int main() {
int start = 100; // 开始检查的最小三位数
int end = 999; // 结束检查的最大三位数
int count = 0; // 计数器,记录水仙花数的数量
printf("水仙花数:\n");
// 遍历3位数
for (int i = start; i <= end; ++i) {
if (is_armstrong_number(i)) {
printf("%d\n", i);
++count;
}
}
printf("\n水仙花数共有 %d 个。\n", count);
return 0;
}
// 判断是否是水仙花数的函数
int is_armstrong_number(int num) {
int digits[3];
int sum = 0;
// 提取每一位数字并立方
while (num > 0) {
digits[count] = num % 10;
sum += pow(digits[count], 3); // 使用pow计算立方
num /= 10;
++count;
}
// 如果原始数等于各个位立方和,则是水仙花数
return sum == num;
}
```
当你运行这个程序,它将打印出所有的水仙花数及其总数。
阅读全文