用c语言输入一个正整数n(3<=n<=7),输入所以的n位水仙花数
时间: 2024-12-16 20:31:24 浏览: 46
水仙花数是指一个三位数,其各位数字立方和等于它本身。例如,153是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。如果你想编写C语言程序来输入一个正整数`n`并找出所有`n`位的水仙花数,你可以按照以下步骤操作:
```c
#include <stdio.h>
#include <stdbool.h>
bool is_armstrong(int num, int n) {
int sum = 0, temp;
// 计算每一位数字的立方和
temp = num;
while (temp != 0) {
int digit = temp % 10;
sum += pow(digit, n);
temp /= 10;
}
// 如果立方和等于原数,返回true;否则false
return sum == num;
}
int main() {
int n, i, start, end;
printf("请输入一个范围内的位数(3 <= n <= 7): ");
scanf("%d", &n);
if (n < 3 || n > 7) {
printf("输入的位数不在范围内,已退出。\n");
return 0;
}
start = (int)pow(10, n - 1); // 开始检查最小的n位数
end = (int)pow(10, n) - 1; // 结束检查最大的n位数
printf("在%d到%d之间的%dn位水仙花数有:\n", start, end, n);
for (i = start; i <= end; ++i) {
if (is_armstrong(i, n)) {
printf("%d ", i);
}
}
return 0;
}
```
当你运行这个程序时,它会提示用户输入一个范围内的位数,然后列出所有在这个范围内的水仙花数。
阅读全文
相关推荐


















