怎么用C语言判断一个三位的正整数是水仙花数而不用isArmstrong函数
时间: 2024-10-25 14:17:13 浏览: 34
水仙花数是指一个三位数(或是n位数),其各位数字立方和等于该数本身。例如,153就是一个水仙花数,因为 \(1^3 + 5^3 + 3^3 = 153\)。
以下是一个简单的C语言程序,用于检查一个三位数是否为水仙花数,而不需要使用 `isArmstrong` 函数:
```c
#include <stdio.h>
// 检查一个数是否为水仙花数
int isNarcissistic(int num) {
int digits[3]; // 存储每一位数字
int sum = 0;
// 提取并计算每位数字的立方
while (num > 0) {
digits[2] = num % 10; // 取个位
sum += digits[2]*digits[2]*digits[2];
num /= 10; // 移除个位
if (num >= 100) { // 如果还有两位数
digits[1] = num / 10; // 取十位
sum += digits[1]*digits[1]*digits[1];
}
}
// 如果所有位的立方和等于原数,返回1,否则返回0
return (sum == num);
}
int main() {
int num;
printf("Enter a three-digit number: ");
scanf("%d", &num);
if (isNarcissistic(num)) {
printf("%d is a Narcissistic number.\n", num);
} else {
printf("%d is not a Narcissistic number.\n", num);
}
return 0;
}
```
这个程序首先读入一个三位数,然后逐个提取它的每一位,计算每个位上的数字立方并累加到 `sum` 中。如果最终的 `sum` 等于原始输入的 `num`,那么它就是水仙花数。
阅读全文