编程题
1.水仙花数
水仙花数是一个三位整数,如153是一个水仙花数,是因为该数的百位的立方、十位的立方、个位的立方之和等于该数本身,如下所示
程序编写要求:使用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)
运行结果如下:
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)
运行结果如下: