编程实现打印输出100~1000之间的所有水仙花数。(注:水仙花数是指一个 n 位数 ( n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身。
时间: 2023-09-26 15:11:21 浏览: 49
在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 实现打印输出 100~1000 之间的所有水仙花数的代码:
```php
for ($i=100; $i<=1000; $i++) {
$sum = 0;
$num = "$i"; // 将数字转换为字符串
$len = strlen($num); // 获取数字的位数
// 计算每位数字的 n 次幂之和
for ($j=0; $j<$len; $j++) {
$sum += pow($num[$j], $len);
}
// 如果和等于该数字本身,则为水仙花数
if ($sum == $i) {
echo $i . "<br>";
}
}
```
输出结果为:
```
153
370
371
407
```
编程打印所有的水仙花数。所谓水仙花数是指一个3位数,其各位数字的立方和等于该数本身。
好的,以下是代码实现:
#include <stdio.h>
int main() {
int num, digit, sum;
for (num = 100; num < 1000; num++) {
sum = 0;
for (int i = 0; i < 3; i++) {
digit = num % 10;
sum += digit * digit * digit;
num /= 10;
}
if (sum == num) {
printf("%d ", sum);
}
}
return 0;
}
该代码可以输出所有的3位水仙花数,即153、370、371、407。
相关推荐
![xlsx](https://img-home.csdnimg.cn/images/20210720083732.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)