用for循环语句输出所有水仙花数,用Python编程实现寻找所有三位数的水仙花数


水仙花数是指一个三位数,它的每个位上的数字的3次幂之和等于它本身。例如:153 = 1^3 + 5^3 + 3^3。

python

初始化一个空列表,用于存储所有的水仙花数

narcissistic_numbers = []

使用for循环遍历所有的三位数

for num in range(100, 1000):

将数字转换为字符串,然后将其拆分为个位、十位和百位

hundreds = num // 100

tens = (num // 10) % 10

units = num % 10

计算每个位上数字的3次幂之和

sum_of_cubes = hundreds 3 + tens 3 + units 3

如果和等于原数字,则将其添加到列表中

if sum_of_cubes == num:

narcissistic_numbers.append(num)

输出所有的水仙花数

for num in narcissistic_numbers:

print(num)

运行这个程序,将会输出所有的三位数的水仙花数。

对于每一个三位数,我们将其拆分为百位、十位和个位,然后计算每个位上数字的3次幂之和。如果这个和等于原数字,那么它就是一个水仙花数,我们将其添加到列表中。我们遍历这个列表,并输出所有的水仙花数。

这个程序的时间复杂度是O(n),其中n是三位数的数量,即999。这是因为我们需要遍历所有的三位数,并检查它们是否是水仙花数。这个程序的空间复杂度是O(n),其中n是水仙花数的数量。这是因为我们需要存储所有的水仙花数,这可能会比三位数的数量小,但最坏情况下可能会相等。

注意,这个程序使用了Python的整除运算符`//`和取余运算符`%`来拆分数字。整除运算符`//`会返回商的整数部分,取余运算符`%`会返回余数。例如,对于数字153,`153 // 100`将返回1,`153 // 10`将返回15,`153 % 10`将返回3。

这个程序还使用了Python的指数运算符``来计算数字的3次幂。例如,`3 3`将返回27。

这个程序使用了Python的列表来存储所有的水仙花数。列表是一个可变的数据类型,可以包含多个元素。在这个程序中,我们使用`append()`函数将每个水仙花数添加到列表中。然后,我们使用一个for循环遍历这个列表,并使用`print()`函数输出每个水仙花数。