用C语言编写以下,“水仙花数”是指一个三位正整数,它的各位数字的立方和等于其本身,比如: 153=1^3+5^3+3^3 现在要求所有在m和n范围内的水仙花数的个数,边界m和n也考虑在内。
时间: 2024-09-09 20:15:25 浏览: 73
在C语言中,计算水仙花数的个数可以按照以下步骤进行:
首先,我们需要一个循环来遍历给定范围内的每一个三位数。对于每个三位数,我们将它的每一位提取出来,然后计算它们的立方和,最后比较这个和是否等于原数。
下面是一个简单的示例程序,用于计算并打印出m到n之间的水仙花数:
```c
#include <stdio.h>
#include <stdbool.h>
bool is_armstrong(int num) {
int original_num = num;
int sum = 0, temp;
while (num > 0) {
temp = num % 10; // 获取个位数
sum += temp * temp * temp; // 计算立方和
num /= 10;
}
return sum == original_num; // 比较和是否等于原数
}
int count_armstrong_numbers(int m, int n) {
int count = 0;
for (int i = m; i <= n; ++i) {
if (is_armstrong(i)) {
count++;
}
}
return count;
}
int main() {
int m, n;
printf("Enter the range (start and end): ");
scanf("%d %d", &m, &n);
int armstrong_count = count_armstrong_numbers(m, n);
printf("Number of Armstrong numbers between %d and %d: %d\n", m, n, armstrong_count);
return 0;
}
```
在这个程序中,`is_armstrong` 函数用于判断一个数是否为水仙花数,`count_armstrong_numbers` 函数则统计指定范围内水仙花数的数量。
运行程序时,输入范围`m`和`n`即可得到结果。
阅读全文