python 求3位数的水仙花数_【Python】每日一练:水仙花数、爱因斯坦阶梯问题求解...

本文介绍了如何使用Python解决水仙花数和爱因斯坦阶梯问题。对于水仙花数,通过循环遍历100-999之间的数,判断其各位数立方和是否等于自身。而对于爱因斯坦阶梯问题,利用while循环找到满足特定条件的最小阶梯数。两种问题都提供了两种不同的实现方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

编程题

1.水仙花数

水仙花数是一个三位整数,如153是一个水仙花数,是因为该数的百位的立方、十位的立方、个位的立方之和等于该数本身,如下所示

nCWPiSFwdSXRxKYhzZ0yAkmiKc9e2j4KBJJEo5iGNGLKCCSJpjx7afsoEEgSjWIa0ogpI5AkmvLspe2jQCBJNIppSCOmjECSaMqzl7aPAoEk0SimIY2YMgJJoinPXto+CgSSRKOYhjRiyggkiaY8e2n7KBC4Eg536z5XHKyIAAAAAElFTkSuQmCC

程序编写要求:使用for语句完成,统计水仙花数个数的值请保存到变量中,并要求自动进行统计输出结果所有的水仙花数

2.爱因斯坦阶梯问题

设有一阶梯,每步跨2阶,最后余1阶;每步跨3阶,最后余2阶;每步跨5阶,最后余4阶;每步跨6阶,最后余5阶;只有每步跨7阶时,正好到阶梯顶。问最少有多少步阶梯?

要求使用while循环语句实现。

思路分析

1.水仙花数三位数整数取值范围为100-999,采用循环语句依次遍历,判断是否符合水仙花数条件,符合即把该数输出。

通过整除和取模运算获取整数的百十个位数。

2.爱因斯坦阶梯问题

通过while语句循环,直到同时满足所有条件,终止循环

编程实现

1.水仙花数print("所有三位数中的水仙花数如下所示:")

count=0 #水仙花数的个数

for n in range(100,1000):

#通过整除和取模运算,获取一个数的百、十、个位数

a=n//100 #获取百位数

b=n//10%10 #获取十位数

c=n%10 #获取个位数

if a**3+b**3+c**3==n:

print(n)

count=count+1

print("共有%d个"%count)

运行结果如下:

202003091583739328754594.png

2.爱因斯坦阶梯问题

采用逻辑标记作为循环条件,直到找到最少的阶梯数n = 7

isFound=False

while not isFound:

if n%2==1 and n%3==2 and n%5==4 and n%6==5 and n%7==0:

isFound=True

else:

n=n+1

print("最少有%d步阶梯"%n)

采用死循环,直到找到最少阶梯数,用break语句终止循环n = 7

while True:

if n%2==1 and n%3==2 and n%5==4 and n%6==5 and n%7==0:

break

else:

n=n+1

print("最少有%d步阶梯"%n)

运行结果如下:

202003091583739805953134.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值