c语言:求所有的水仙花数
时间: 2024-10-21 15:04:55 浏览: 75
在C语言中,水仙花数是指一个三位数,其各位数字立方之和等于该数本身。例如,153是一个水仙花数,因为1^3 + 5^3 + 3^3 = 1 + 125 + 27 = 153。
下面是简单的C程序,用于查找并打印所有的水仙花数:
```c
#include <stdio.h>
int main() {
int start, end, i, sum;
// 从最小的三位数开始寻找
start = 100;
end = 999;
printf("水仙花数有:\n");
for (i = start; i <= end; i++) {
sum = i / 100 * pow(10, 2) + i % 100 / 10 * pow(10, 1) + i % 10;
if (sum == i) {
printf("%d ", i);
}
}
return 0;
}
```
这个程序遍历100到999之间的所有整数,计算每个数的每一位立方然后相加。如果结果等于原数,就认为找到了一个水仙花数,并将其打印出来。
相关问题
C语言:求三位数的水仙花数,输出全部水仙花数
水仙花数是指一个n位正整数,其各位数字立方之和等于该数本身。例如,153是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。
在C语言中,你可以通过循环遍历所有三位数并计算每一位的立方和来找出所有的水仙花数。以下是一个简单的示例程序:
```c
#include <stdio.h>
int main() {
int num, digit, sum;
// 循环遍历100到999
for (num = 100; num <= 999; num++) {
// 分离每一位数字
digit = num / 100;
sum += digit * digit * digit; // 右移两位相当于取百位
digit = num % 100 / 10;
sum += digit * digit * digit; // 取十位
digit = num % 10;
sum += digit * digit * digit; // 取个位
// 如果sum等于原数,就输出它是水仙花数
if (sum == num) {
printf("%d 是一个水仙花数。\n", num);
}
}
return 0;
}
```
当你运行这个程序,它会打印出所有三位的水仙花数。
用c语言编写求所有水仙花数
水仙花数是指一个三位数,其各位数字立方和等于该数本身。例如,153是一个水仙花数,因为1^3 + 5^3 + 3^3 = 1 + 125 + 27 = 153。
下面是一个简单的C语言程序,用于查找并打印出小于1000的所有水仙花数:
```c
#include <stdio.h>
// 检查是否是水仙花数
int is_armstrong_number(int num) {
int sum = 0;
int temp = num;
while (temp != 0) {
int digit = temp % 10;
sum += digit * digit * digit; // 计算每一位立方
temp /= 10;
}
if (sum == num)
return 1;
else
return 0;
}
// 主函数,遍历并检查100到999范围内的数字
void find_armstrong_numbers() {
for (int i = 100; i <= 999; i++) {
if (is_armstrong_number(i))
printf("%d ", i);
}
}
int main() {
find_armstrong_numbers();
return 0;
}
```
当你运行这个程序,它会输出小于1000的所有水仙花数:153, 370, 371, 407.
阅读全文