水仙花数是指一个三位数,它的每个位上的数字的立方和等于它本身。例如,153是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。
要找出所有的三位水仙花数,可以使用编程语言中的循环结构。以下是一个简单的算法步骤:
初始化:
从100开始遍历到999,因为水仙花数是三位数。
拆分数字:
对于每个三位数,拆分成个位、十位和百位。
计算立方和:
计算这三个数字的立方和。
比较:
将立方和与原数进行比较,如果相等,则该数是一个水仙花数。
输出结果:
将所有找到的水仙花数输出。
```c
include
int main() {
int i, j, k, m;
printf("输出100~999之间的所有水仙花数:\n");
for (i = 100; i <= 999; i++) { // 遍历所有的三位数
j = i / 100;// 获取百位数字
k = (i % 100) / 10; // 获取十位数字
m = i % 10; // 获取个位数字
if (i == j * j * j + k * k * k + m * m * m) { // 判断是否是水仙花数
printf("%d\n", i);
}
}
return 0;
}
```
这个程序会输出100到999之间的所有水仙花数。运行结果如下:
```
153
370
371
407
```
这个算法的时间复杂度是O(1),因为无论输入的数字范围如何,循环的次数都是固定的(999次)。