检查是否为水仙花数用C语言
时间: 2024-10-10 07:05:26 浏览: 32
水仙花数c语言源码.zip
检查一个数字是否为“水仙花数”( narcissistic number),也称为阿姆斯特朗数(Armstrong number),是指一个n位正整数(n >= 3),它的每个位上的数字的n次幂之和等于它本身。例如,153是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。
在C语言中,可以编写一个函数来判断一个给定的整数是否为水仙花数。下面是一个简单的示例:
```c
#include <stdio.h>
int is_armstrong_number(int num) {
int original_num, sum = 0, remainder;
int digit_count = 0;
// 获取数字的位数
while (num != 0) {
digit_count++;
num /= 10;
}
// 计算每一位的n次方并累加
original_num = num;
while (original_num > 0) {
remainder = original_num % 10;
sum += pow(remainder, digit_count); // 使用pow计算n次方
original_num /= 10;
}
// 如果原始数字和累加结果相等,则是水仙花数
return sum == original_num;
}
int main() {
int input;
printf("请输入一个三位数:");
scanf("%d", &input);
if (is_armstrong_number(input)) {
printf("%d 是水仙花数。\n", input);
} else {
printf("%d 不是水仙花数。\n", input);
}
return 0;
}
```
在这个程序中,`is_armstrong_number` 函数首先确定输入数字的位数,然后将每位数字分别取出来,求其幂并累加。如果最终的结果等于原数,那么就是水仙花数。
阅读全文