用while循环找到水仙花数
时间: 2023-10-22 08:05:26 浏览: 355
水仙花数是指一个三位数,其各位数字的立方和等于该数本身。因此,我们可以使用while循环来找到所有的水仙花数。
具体代码如下:
```python
num = 100
while num <= 999:
# 拆分数字
hundreds = num // 100
tens = (num // 10) % 10
ones = num % 10
# 计算立方和
sum_cubes = hundreds**3 + tens**3 + ones**3
# 判断是否为水仙花数
if num == sum_cubes:
print(num)
num += 1
```
该程序首先将num初始化为100,然后进入while循环。在每次循环中,程序将num拆分成三个数字(百位、十位和个位),计算它们的立方和,并将结果与num进行比较。如果相等,则打印出该数,表示它是一个水仙花数。最后,程序将num加1,并继续下一次循环,直到num等于1000时结束循环。
相关问题
while循环写水仙花数
在Python中,可以使用while循环来寻找水仙花数(又称 Narcissistic Number 或者 Pluperfect Digital Invariant),这类数字的特点是其各位数字的立方和等于它本身。下面是一个简单的示例代码,通过while循环遍历从1到某个较大的数,检查每个数是否为水仙花数:
```python
def is_narcissistic_number(num):
digits = [int(digit) for digit in str(num)]
sum_of_cubes = sum([digit**3 for digit in digits])
return num == sum_of_cubes
start = 100
end = 999 # 因为最大的三位水仙花数是370,204
narcissistic_numbers = []
i = start
while i <= end:
if is_narcissistic_number(i):
narcissistic_numbers.append(i)
i += 1
print("水仙花数有:", narcissistic_numbers)
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++;
}
```
阅读全文