使用for循环做1000以内的水仙花数
时间: 2024-11-09 21:27:13 浏览: 21
水仙花数是指一个三位数,其各位数字立方之和等于该数本身。例如,153是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。
要在Python中使用for循环找出1000以内的所有水仙花数,你可以这样做:
```python
# 初始化空列表来存储水仙花数
narcissistic_numbers = []
# 遍历100到999之间的每一个三位数
for num in range(100, 1000):
# 将数字拆分为三个位数
digits = [int(digit) for digit in str(num)]
# 计算每个位数的立方和
sum_of_cubes = sum([digit**3 for digit in digits])
# 如果计算结果等于原数,那么它是水仙花数
if sum_of_cubes == num:
narcissistic_numbers.append(num)
# 输出所有的水仙花数
print("1000以内的水仙花数有:", narcissistic_numbers)
相关问题
C#使用for循环做1000以内的水仙花数
在C#中,水仙花数是指一个三位数,其各位数字立方之和等于该数本身。比如153就是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。为了找出1000以内的所有水仙花数,你可以使用for循环遍历从100到999的所有整数,并检查它们是否满足条件。下面是一个简单的示例代码:
```csharp
using System;
class Program {
static void Main(string[] args) {
for (int num = 100; num < 1000; num++) {
int hundreds = num / 100;
int tens = (num % 100) / 10;
int ones = num % 10;
if (hundreds == cubesOf(hundreds) && tens == cubesOf(tens) && ones == cubesOf(ones)) {
Console.WriteLine(num); // 打印找到的水仙花数
}
}
}
// 辅助函数,计算给定数字的立方
static int cubesOf(int num) => num * num * num;
}
```
这个程序会输出1000以内所有的水仙花数。
用Python中的for循环计算1000以内的水仙花数
在Python中,水仙花数是指一个三位数,其各位数字立方之和等于原数本身。例如,153是个水仙花数,因为1^3 + 5^3 + 3^3 = 153。我们可以使用for循环遍历1000以内的所有整数,检查每个数是否满足这个条件。以下是相关的Python代码:
```python
def find_water_lily_numbers(n):
for num in range(100, n+1): # 遍历100到n之间的整数
digits = [int(digit) for digit in str(num)] # 将数字转换为列表,取每个位上的数字
sum_of_cubes = sum([digit**3 for digit in digits]) # 计算每一位立方和
if sum_of_cubes == num: # 如果和等于原数,则找到了水仙花数
print(num)
find_water_lily_numbers(1000)
```
运行此代码将打印出1000以内所有的水仙花数。
阅读全文