python题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。
作者:野牛程序员:2024-11-07 12:00:09python阅读 2182
python题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。
python题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。
"水仙花数"是指一个三位数,其各位数字的立方和等于该数本身。例如,153 是一个水仙花数,因为 1^3 + 5^3 + 3^3 = 153。
代码实现:
可以通过遍历 100 到 999 之间的所有三位数,对每个数分别提取出百位、十位和个位数字,然后计算这些数字的立方和,判断是否等于该数本身。
# 遍历 100 到 999 之间的所有数 for num in range(100, 1000): # 提取各位数字 hundreds = num // 100 # 百位 tens = (num // 10) % 10 # 十位 ones = num % 10 # 个位 # 判断是否为水仙花数 if num == hundreds**3 + tens**3 + ones**3: print(num)
解释:
hundreds = num // 100
:获取百位数字(通过整除 100)。tens = (num // 10) % 10
:获取十位数字(先整除 10,再对 10 取模)。ones = num % 10
:获取个位数字(对 10 取模)。if num == hundreds**3 + tens**3 + ones**3
:判断该数是否等于其各位数字的立方和。
输出结果:
运行上述代码后,输出所有水仙花数:
153 370 371 407
野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892