编程实现打印输出100~1000之间的所有水仙花数。(注:水仙花数是指一个 n 位数 ( n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身。
时间: 2023-09-26 19:11:21 浏览: 85
在Python中,可以使用以下代码实现该功能:
```python
for i in range(100, 1000):
s = str(i)
n = len(s)
sum = 0
for c in s:
sum += int(c) ** n
if sum == i:
print(i)
```
解释一下:
首先,我们使用 `range(100, 1000)` 来生成100到999的整数序列。然后,对于每个整数 `i`,我们将其转换为字符串并获取其长度 `n`。接着,我们遍历每个字符,将其转换为数字并计算其 `n` 次幂,最后将这些结果相加得到 `sum`。如果 `sum` 等于 `i`,那么 `i` 就是一个水仙花数,我们将其打印输出。
相关问题
php编程实现打印输出100~1000之间的所有水仙花数。(注:水仙花数是指一个 n 位数 ( n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身。
以下是 PHP 代码实现:
```php
for ($i = 100; $i <= 1000; $i++) {
$num = $i;
$sum = 0;
$len = strlen($num);
while ($num > 0) {
$digit = $num % 10;
$sum += pow($digit, $len);
$num = (int)($num / 10);
}
if ($sum == $i) {
echo $i . " ";
}
}
```
解释:
首先使用 for 循环遍历 100~1000 之间的所有数。对于每个数,使用 while 循环计算它的各个位数的 n 次幂之和。具体地,先将该数赋值给 $num 变量,然后在 while 循环中,每次取 $num 的个位数,并将其 n 次幂加到 $sum 变量中,直到 $num 变成 0。最后,如果 $sum 等于该数本身,就说明该数是水仙花数,打印输出即可。
输出3位数的水仙花数。编写程序,输出100-1000之间的水仙花数。所谓水仙花数是指一个3位数,其各位数字的立方和等于该数本身。 (格式提示:每行输出一个水仙花数)
好的,这是一个编程问题,以下是Python代码实现:
```python
for i in range(100, 1000):
# 将数字转为字符串,再将每个字符转为数字
a, b, c = map(int, str(i))
# 如果满足水仙花数的条件,则输出
if i == a**3 + b**3 + c**3:
print(i)
```
输出结果如下:
```
153
370
371
407
```
阅读全文