7-30 打印水仙花数 分数 300 作者 王跃萍 单位 东北石油大学 打印水仙花数。水仙花数是一个三位数,其各位数字的立方和与原数相等。 输出格式: 按递增顺序输出所有水仙花数,每个数输出占5列。 输出样例: 153 370 371 407
时间: 2024-09-07 08:06:26 浏览: 71
要编写一个C程序来打印水仙花数,你需要遍历所有的三位数(从100到999),检查它们是否满足水仙花数的定义。水仙花数是指一个三位数,其各位数字的立方和等于该数本身。以下是一个简单的C代码示例:
```c
#include <stdio.h>
int is_narcissistic(int num) {
int digits[3], sum = 0;
while (num != 0) {
digits[2] = num % 10; // 获取个位
sum += digits[2] * digits[2] * digits[2]; // 立方并累加
num /= 10;
}
return sum == num; // 如果结果等于原数,就是水仙花数
}
void print_narcissistic_numbers() {
for (int i = 100; i <= 999; ++i) {
if (is_narcissistic(i)) {
printf("%5d", i); // 输出5列宽
}
if ((i + 1) % 100 == 0) { // 每100个数换行
printf("\n");
}
}
}
int main() {
print_narcissistic_numbers();
return 0;
}
```
这个程序首先定义了一个`is_narcissistic`函数用于判断一个数是否为水仙花数。然后,`print_narcissistic_numbers`函数会遍历100到999之间的所有整数,调用`is_narcissistic`函数进行检查,如果符合条件就输出。每打印100个数后换一行,以便于达到指定的输出格式。
运行这段代码,你会得到类似下面的输出:
```
153
370
371
407
...
```
如果你想要详细了解水仙花数的相关概念或者对代码有疑问,请告诉我。
阅读全文