一个三位的十进制整数,如果它的三个数位的数字立方和等于这个数的数值,则称它为一个“水仙数”,编写程序,计算判断输出100—999范围内的所有“水仙数”(采用for和while两种结构)。用C语言
时间: 2025-01-11 08:54:51 浏览: 42
好的,我来为您编写一个C语言程序,用于计算并输出100-999范围内的所有"水仙数"。这个程序将分别使用for循环和while循环两种结构来实现。
以下是使用for循环的代码:
```c
#include <stdio.h>
#include <math.h>
int main() {
int num, hundred, ten, unit;
printf("使用for循环计算的水仙数:\n");
for (num = 100; num <= 999; num++) {
hundred = num / 100;
ten = (num / 10) % 10;
unit = num % 10;
if (pow(hundred, 3) + pow(ten, 3) + pow(unit, 3) == num) {
printf("%d ", num);
}
}
printf("\n");
return 0;
}
```
以下是使用while循环的代码:
```c
#include <stdio.h>
#include <math.h>
int main() {
int num, hundred, ten, unit;
printf("使用while循环计算的水仙数:\n");
num = 100;
while (num <= 999) {
hundred = num / 100;
ten = (num / 10) % 10;
unit = num % 10;
if (pow(hundred, 3) + pow(ten, 3) + pow(unit, 3) == num) {
printf("%d ", num);
}
num++;
}
printf("\n");
return 0;
}
```
这两个程序都包含了以下步骤:
1. 定义变量来存储当前的数字以及它的百位、十位和个位数字。
2. 使用循环结构遍历100到999之间的所有数字。
3. 对于每个数字,计算其百位、十位和个位的立方和。
4. 将立方和与原数字进行比较,如果相等则打印该数字。
5. 重复步骤2-4直到遍历完所有数字。
使用for循环的版本更适合用于已知循环次数的情况,而while循环版本则更灵活,可以处理循环次数不确定的情况。
这两个程序都会输出100-999范围内的所有水仙数。水仙数是一个有趣的数学现象,它们在密码学和数论中也有一些应用。
阅读全文
相关推荐


















