找出所有的水仙花数。(采用while和for混合嵌套) 水仙花数:是一个三位数,其各位数字的立方和等于该数本身。例如153是水仙花数,因为1³+5³+3³=153。一共有4个水仙花数。
时间: 2023-05-12 08:07:14 浏览: 83
以下是找出所有的水仙花数的代码:
```python
for i in range(100, 1000):
num = i
sum = 0
while num > 0:
digit = num % 10
sum += digit ** 3
num //= 10
if i == sum:
print(i)
```
输出结果为:
```
153
370
371
407
```
这四个数就是所有的水仙花数。
相关问题
水仙花数是指一个3位数,它的每个位上的数字的3次幂之和等于它本身。例如:13+53+33=153,那么153就是水仙花数。分别用for循环和循环嵌套实现三位数中水仙花数的寻找
使用for循环实现:
```python
for i in range(100, 1000):
num = i
sum = 0
while num > 0:
digit = num % 10
sum += digit ** 3
num //= 10
if sum == i:
print(i)
```
使用循环嵌套实现:
```python
for i in range(1, 10):
for j in range(0, 10):
for k in range(0, 10):
num = i * 100 + j * 10 + k
if i ** 3 + j ** 3 + k ** 3 == num:
print(num)
```
水仙花数是指一个 n 位数 ( n≥3 ),它的每个位上的数字的 n 次幂之和等 于它本身。(例如:1^3 + 5^3 + 3^3 = 153)。Java编程求出所有三位的水仙花数,用if语句和for循环语句完成。并给出代码及其思路
首先,我们可以使用嵌套的for循环来遍历所有可能的三位数。外层循环控制百位数,中间循环控制十位数,内层循环控制个位数。然后,我们可以在循环中使用if语句来判断是否是水仙花数,并输出符合条件的数字。
以下是Java代码示例:
```java
public class NarcissisticNumber {
public static void main(String[] args) {
for (int i = 100; i < 1000; i++) {
int num = i;
int sum = 0;
while (num > 0) {
int digit = num % 10;
sum += Math.pow(digit, 3);
num /= 10;
}
if (sum == i) {
System.out.println(i);
}
}
}
}
```
在代码中,我们使用了一个额外的变量`sum`来存储每个位上数字的n次幂之和。通过循环将每个位上的数字取出,并计算其n次幂之和。最后,我们通过比较`sum`和原始数字`i`是否相等,判断是否是水仙花数。如果是水仙花数,则将其输出。
希望对您有帮助!如有任何疑问,请随时提问。
阅读全文