用while循环求1到1000的水仙花数
时间: 2023-11-02 17:15:28 浏览: 127
水仙花数是指一个三位数,其各位数字立方和等于该数本身。比如153是水仙花数,因为1³ + 5³ + 3³ = 153。以下是用while循环求1到1000的水仙花数的代码:
```python
n = 100
while n <= 999:
temp = n
sum = 0
while temp > 0:
digit = temp % 10
sum += digit ** 3
temp //= 10
if n == sum:
print(n)
n += 1
```
在上述代码中,我们首先定义了一个变量n,初始值为100。然后我们进入while循环,循环条件是n小于等于999。在循环体中,我们首先将n赋值给一个临时变量temp,然后用一个while循环计算temp的各位数字的立方和sum。计算完sum后,我们检查n是否等于sum,如果是,就打印出n。最后,我们将n加1,进入下一轮循环,直到n大于999为止。
相关问题
while循环求水仙花数
水仙花数是指一个三位数,其各位数字的立方和等于该数本身。我们可以使用while循环来求出所有的水仙花数。具体步骤如下:
1. 定义一个变量i,初始值为100,表示从100开始找水仙花数。
2. 使用while循环,判断i是否小于等于999,如果是,则执行循环体内的代码。
3. 在循环体内,定义三个变量a、b、c,分别表示i的百位、十位、个位数字。
4. 判断i是否等于a*a*a + b*b*b + c*c*c,如果是,则打印输出i。
5. 将i加1,继续执行下一轮循环。
下面是求水仙花数的示例代码:
```
int i = 100;
while (i <= 999) {
int a = i / 100;
int b = i / 10 % 10;
int c = i % 10;
if (i == a*a*a + b*b*b + c*c*c) {
cout << i << endl;
}
i++;
}
```
用while循环实现999以内的水仙花数
水仙花数是指一个三位数,其各位数字立方之和等于该数本身。例如,153就是水仙花数,因为1^3 + 5^3 + 3^3 = 1 + 125 + 27 = 153。用while循环在C语言中实现查找999以内的所有水仙花数,可以这样做:
```c
#include <stdio.h>
#include <math.h>
int main() {
int num, digit[3], sum;
// 从100开始遍历,到999结束
while (num <= 999) {
// 获取每一位数字
digit[0] = num / 100;
digit[1] = (num % 100) / 10;
digit[2] = num % 10;
// 计算数字立方之和
sum = pow(digit[0], 3) + pow(digit[1], 3) + pow(digit[2], 3);
// 检查是否是水仙花数
if (sum == num) {
printf("%d is a narcissistic number.\n", num);
}
num++;
}
return 0;
}
```
这个程序会依次检查100到999之间的每个数,如果满足水仙花数条件,就会打印出来。
阅读全文