用c语言输入一个正整数n(3≤n≤7),输出所有的n位水仙花数
时间: 2024-11-15 08:25:56 浏览: 5
水仙花数是指一个三位数,其各位数字立方和等于该数本身。例如,153是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。如果要用C语言编写程序,可以按照以下步骤:
1. 首先,需要一个循环从最小的三位数900开始,到最大的七位数999999结束,每次增加100。
2. 对于每个数字n,计算它的百位、十位和个位的立方和sum。
3. 比较sum是否等于原始的n,如果是,则输出这个数字。
以下是简单的C语言代码示例:
```c
#include <stdio.h>
#include <stdbool.h>
bool isArmstrong(int num) {
int original = num;
int sum = 0;
while (num > 0) {
int digit = num % 10;
sum += digit * digit * digit; // 计算立方和
num /= 10;
}
return original == sum; // 检查是否是水仙花数
}
int main() {
int n;
printf("请输入一个3到7之间的正整数(包含边界)n: ");
scanf("%d", &n);
for (int i = 100; i <= pow(10, n); i++) { // 生成n位数范围内的所有数
if (isArmstrong(i)) {
printf("%d ", i); // 输出水仙花数
}
}
return 0;
}
阅读全文