第九讲作业
1.用函数实现一个判断用户输入的年份是否是闰年的程序
-
1).能被400整除的年份
-
2).能被4整除,但是不能被100整除的年份
-
以上2种方法满足一种即为闰年
def leap_year():
while True:
year = int(input('请输入数字年份(如需退出请输入0):'))
if (year % 4 == 0 or year % 400 == 0) and year != 0:
print("%d是闰年" % year)
elif year == 0:
return False
else:
print("%d不是闰年" % year)
leap_year()
2.猴子吃桃问题(递归):
猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了,求第一天共摘了多少桃子?
# 首先是思路 ,这个题目要逆向思维,从1往前推导 避免出现除以2不能整除的现象
# F0=1 n=0
# F1= (1+1)*2 n=1
# F2= (F1+1)*2 n=2
# Fn= (F(n-1)+1)*2 n
def eat_pear(n):
if n == 1:
return 1
return (eat_pear(n - 1) + 1) * 2
n = int(input('你想让猴子第几天吃地只剩一个桃子?请输入:'))
print('需要有{}个桃子,才能满足猴子在第{}天吃地只剩一个'.format(eat_pear(n), n))