如何用C语言编写一个计算水仙花数的程序?
时间: 2024-12-01 15:30:29 浏览: 12
在C语言中,计算水仙花数(也称为 narcissistic number 或者 Armstrong number)是指一个三位数,其各位数字的立方和等于它本身。例如,153是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。
下面是一个简单的C程序来计算水仙花数:
```c
#include <stdio.h>
// 定义函数,检查是否是水仙花数
int is_armstrong(int num) {
int original_num, remainder, sum = 0;
original_num = num;
// 对于三位及以上的数,先分解成每一位的数值
while (original_num > 0) {
remainder = original_num % 10; // 取最后一位
sum += remainder * remainder * remainder; // 累加立方
original_num /= 10; // 移除最后一位
}
// 如果原数和累加后的结果相等,则是水仙花数
if (num == sum)
return 1;
else
return 0;
}
int main() {
int i;
printf("Enter the range of numbers to check for Narcissistic numbers: ");
scanf("%d", &i);
printf("Narcissistic numbers between 1 and %d are:\n", i);
for (int num = 100; num <= i; num++) {
if (is_armstrong(num))
printf("%d ", num);
}
return 0;
}
```
在这个程序中,`is_armstrong` 函数用于检查输入的数是否是水仙花数,`main`函数则用于获取用户输入的范围并遍历这个范围内的所有数进行检查。
阅读全文