缺省参数
如果实参没有给,就是用默认参数值
global
global表明x是全局变量,此时在函数内修改x值等同于修改全局变量x的值
!! x此时不需要成为参数
1
题目内容:
一个斐波那契数列的前10项为:1, 2, 3, 5, 8, 13, 21, 34, 55, 89,对于一个最大项的值不超过n的斐波那契数列,求值为偶数的项的和。
输入格式:
一个正整数n,如100。
输出格式:
值为偶数的项的和,如 2 + 8 + 34 = 44。
输入样例:
100
输出样例:
44
def fib(n,a,b,sum):
c=a+b
if c>n:return sum
if c%2==0:sum+=c
return fib(n,b,c,sum)
n=int(input())
print(fib(n,1,1,0))
2
题目内容:
若已知1800年1月1日为星期3,则对于一个给定的年份和月份,输出这个月的最后一天是星期几。
输入格式:
两行整数,分别代表年份和月份
输出格式:
星期数,0代表星期日
输入样例:
2033
12
输出样例:
6
def run(x):
if x%400==0 or (x%4==0 and x%100!=0):
return True
else: return False
def Get_month(x,y):
if x in(1,3,5,7,8,10,12):
return 31
elif x in(4,6,9,11):
return 30
elif run(y):return 29
else: return 28
def Get_days(year,month):
days=0
for i in range(1800,year):
if run(i):days+=366
else: days+=365
for i in range(1,month+1):
days+=Get_month(i,year)
return days
year=int(input())
month=int(input())
days=Get_days(year,month)-1
天数要减1,不包括1800年1月1日
ans=(3+days%7)%7
if ans==0:ans=7
print(ans)
3
题目内容:
如在汉诺塔游戏中,我们希望将塔A上的n个盘子,通过塔B移动到塔C,则对于任意输入的n,给出移动的步骤。
输入格式:
一个正整数n
输出格式:
移动的步骤
输入样例:
2
输出样例:
Move 1 from A to B
Move 2 from A to C
Move 1 from B to C
def hanoi(n,a,b,c):
if n==1:
print "Move",n,"from",a,"to",c
python2中输出要去掉print中的括号
python3中则不用
return
hanoi(n-1,a,c,b)
print "Move",n,"from",a,"to",c
hanoi(n-1,b,a,c)
n=int(input())
hanoi(n,'A','B','C')