用C语言找出10到99之间所有的阿姆斯特朗数
时间: 2024-11-15 10:24:34 浏览: 12
阿姆斯特朗数是指一个n位正整数,其各位数字的n次幂之和等于该数本身。例如,153(=1^3 + 5^3 + 3^3)就是一个3位阿姆斯特朗数。
在C语言中,我们可以编写一个函数来找出10到99之间的所有阿姆斯特朗数。这里是一个简单的示例:
```c
#include <stdio.h>
#include <math.h>
int is_armstrong(int num) {
int digits[3], sum = 0, n = 0;
while (num > 0) {
digits[n] = num % 10;
num /= 10;
n++;
}
for (int i = 0; i < n; i++) {
sum += pow(digits[i], n);
}
if (sum == num)
return 1; // 阿姆斯特朗数
else
return 0; // 非阿姆斯特朗数
}
void find_amstrong_numbers(int start, int end) {
for (int i = start; i <= end; i++) {
if (is_armstrong(i))
printf("%d ", i);
}
}
int main() {
int start = 10, end = 99;
printf("10到99之间的阿姆斯特朗数有:\n");
find_amstrong_numbers(start, end);
return 0;
}
```
这个程序首先定义了一个`is_armstrong`函数,用于检查一个数是否是阿姆斯特朗数。然后在`find_amstrong_numbers`函数中遍历指定范围内的每个数,并调用`is_armstrong`判断是否是阿姆斯特朗数。如果找到,就打印出来。
运行这个程序,你会看到10到99之间的所有阿姆斯特朗数:153, 370, 371。
阅读全文