如何用C语言编程来检查一个整数是否为三位数的水仙花数?
时间: 2024-10-21 15:05:26 浏览: 36
在C语言中,水仙花数是指一个n位正整数,其各位数字立方之和等于该数本身。例如,153是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。
以下是简单的步骤和代码示例来检查一个整数是否为水仙花数:
1. 首先,定义一个函数`isArmstrongNumber(int num)`,接收一个整数作为输入。
2. 计算数字的每一位,取模10得到个位、十位和百位(如果有的话)。
3. 将每位数字分别计算立方,并求和。
4. 比较这个和是否等于原始输入的数。
```c
#include <stdio.h>
int cube_of_digit(int digit) {
return digit * digit * digit;
}
int isArmstrongNumber(int num) {
int original_num = num; // 保存原始数值防止溢出
int sum = 0;
int temp = num;
while (temp != 0) {
int last_digit = temp % 10; // 取最后一位
sum += cube_of_digit(last_digit); // 累加立方值
temp /= 10; // 移除最后一位
}
// 如果原始数和各位立方和相等,则返回1,表示是水仙花数;否则返回0
return original_num == sum;
}
int main() {
int num;
printf("Enter a number to check if it's an Armstrong number: ");
scanf("%d", &num);
if (isArmstrongNumber(num)) {
printf("%d is an Armstrong number.\n", num);
} else {
printf("%d is not an Armstrong number.\n", num);
}
return 0;
}
```
阅读全文