水仙花数是指一个N位正整数(N>=3),它的每个位上的数字的N次方之和等于它本身。例 如: 。判断一个数是否为水仙花数。 输入格式 一个正整数n(<n<) 输出格式 true或false
时间: 2024-11-10 22:13:02 浏览: 43
水仙花数( narcissistic number 或 pluperfect digital invariant number)是指一个三位及以上的正整数,其各位数字的立方和等于该数本身的特性。例如,153 是一个水仙花数,因为 1^3 + 5^3 + 3^3 = 153。
要编写一个 C 语言程序来判断一个数是否为水仙花数,你可以使用以下步骤:
1. 定义一个函数,接受一个整数参数 n。
2. 检查如果 n 小于 100 或者大于 999,则不是水仙花数,返回 false。
3. 初始化一个临时变量 sum,用于存储 n 的各个位的立方和。
4. 对 n 的每一位进行循环处理:
- 取出每一位(假设 n % 10 是个位,(n / 10) % 10 是十位,(n / 100) 是百位)
- 将这个位的值立方并加到 sum 上。
5. 如果 sum 等于 n,说明 n 是水仙花数,返回 true;否则返回 false。
下面是对应的 C 代码示例:
```c
#include <stdio.h>
// 判断是否为水仙花数
bool isNarcissistic(int n) {
if (n < 100 || n > 999) {
return false;
}
int sum = 0;
int temp = n;
// 计算每位的立方和
while (temp > 0) {
int digit = temp % 10;
sum += digit * digit * digit;
temp /= 10;
}
return sum == n;
}
int main() {
int num;
printf("请输入一个正整数: ");
scanf("%d", &num);
if (isNarcissistic(num)) {
printf("true\n");
} else {
printf("false\n");
}
return 0;
}
```
阅读全文