c语言,水仙花数是指一个N位正整数(N>=3), 它每个 位上的数字的N次幂之和等于它本身,例 如:153=1^3+513+3A3 本题要求编写程序,计算所有N位水仙花数.输入格式: 输入在一行中给出
时间: 2024-11-07 16:03:03 浏览: 0
C语言中的水仙花数,是指一个 n 位数,它的每个位上的数字的n次方之和等于它本身
在C语言中,计算N位水仙花数通常会涉及到循环和条件判断。下面是一个简单的C程序示例,用于找出指定范围内的水仙花数:
```c
#include <stdio.h>
// 检查一个数字是否为水仙花数
int is narcissistic(int num) {
int len = 0;
int temp = num;
while (temp != 0) {
len++;
temp /= 10;
}
int sum = 0;
temp = num;
while (temp != 0) {
int digit = temp % 10;
sum += pow(digit, len); // 使用pow函数求幂
temp /= 10;
}
return num == sum;
}
// 主函数,读取用户输入并查找水仙花数
int main() {
int start, end;
printf("请输入要查找的最小和最大N位数的范围(每行一个数字): ");
scanf("%d %d", &start, &end);
for (int i = start; i <= end; ++i) {
if (is_narcissistic(i)) {
printf("%d 是一个N位水仙花数\n", i);
}
}
return 0;
}
```
当你运行这个程序时,需要输入两个数作为边界,然后它会输出在这个范围内所有的N位水仙花数。例如,如果你输入`100 999`,它将找到所有三位和四位的水仙花数。
阅读全文