找出100~999的水仙花数,并以每行2个数的方式输出。(水仙花数指的是这样一个三位数,其各位数字的立方和等于该数本身,即didzd3=d*d*di+dz*dz*dz+d3*d3*d3。)_使用c语言
时间: 2024-10-20 10:05:00 浏览: 27
在C语言中,找出100到999范围内的水仙花数可以利用循环结构和条件判断。下面是一个简单的示例程序,它会找出并按每行两个数的方式打印出来:
```c
#include <stdio.h>
#include <stdbool.h>
// 检查是否为水仙花数的函数
bool is_armstrong_number(int num) {
int original_num = num;
int sum = 0;
int temp = num;
// 计算每一位的立方和
while (temp != 0) {
int digit = temp % 10;
sum += digit * digit * digit; // 对每一位立方
temp /= 10;
}
return sum == original_num;
}
int main() {
for (int i = 100; i <= 999; ++i) { // 遍历100到999
if (is_armstrong_number(i)) {
printf("%d ", i); // 输出水仙花数
if ((i + 1) % 100 == 0) { // 如果下一个数是新的一行的开始
printf("\n%d ", i + 1); // 输出下一行的第一个数
}
} else if ((i + 1) % 100 == 0) {
// 如果不是水仙花数但到了新的一行,直接换行
printf("\n");
}
}
return 0;
}
```
这个程序首先定义了一个 `is_armstrong_number` 函数,用于检查一个数是否是水仙花数。然后,在主函数中遍历指定范围内的整数,找到水仙花数后每行输出两个。
阅读全文