怎么用C语言判断一个三位的正整数是水仙花数
时间: 2024-10-25 12:17:14 浏览: 16
水仙花数是指一个n位正整数(n>=3),其各位数字立方之和等于原数本身。例如,153是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。
以下是如何用C语言编写一个函数来判断一个三位数是否为水仙花数:
```c
#include <stdio.h>
// 函数定义
int isArmstrong(int num) {
int original, remainder, sum = 0;
// 对于三位数
if (num >= 100 && num <= 999) {
original = num;
// 分离每一位数字并计算它们的立方
while (original != 0) {
remainder = original % 10;
sum += pow(remainder, 3); // 使用pow函数计算立方,但这里假设编译器支持
original /= 10;
}
// 如果原始数值等于立方和,则返回1,否则返回0
return original == sum;
} else {
return 0; // 非三位数直接返回0表示不是水仙花数
}
}
int main() {
int number;
printf("请输入一个三位数: ");
scanf("%d", &number);
if (isArmstrong(number)) {
printf("%d 是水仙花数\n", number);
} else {
printf("%d 不是水仙花数\n", number);
}
return 0;
}
```
在这个程序中,`isArmstrong`函数接收一个整数作为参数,检查它的各个位数是否满足水仙花条件。如果满足,该函数返回1;如果不满足,返回0。在`main`函数中,我们获取用户的输入并调用这个函数进行判断。
阅读全文