题目内容:
一个斐波那契数列的前10项为:1, 2, 3, 5, 8, 13, 21, 34, 55, 89,对于一个最大项的值不超过n的斐波那契数列,求值为偶数的项的和。
输入格式:
一个正整数n,如100。
输出格式:
值为偶数的项的和,如 2 + 8 + 34 = 44。
输入样例:
100
输出样例:
44
sum1=1
sum2=1
sum3=2
count=0
while sum3<=n:
if sum3%2==0:
count+=sum3
sum1=sum2
sum2=sum3
sum3=sum1+sum2
print count
if n == 0 or n == 1:
return 1
else:
return fib(n - 1) + fib(n - 2)
sum = 0
i = 0
num = int(raw_input())
while fib(i) < num:
if fib(i) % 2 == 0:
sum += fib(i)
i += 1
print sum
若已知1800年1月1日为星期3,则对于一个给定的年份和月份,输出这个月的最后一天是星期几。
输入格式:
两行整数,分别代表年份和月份
输出格式:
星期数,0代表星期日
输入样例:
2033
12
输出样例:
6
def is_leap_year(Year):
if Year % 4 ==0 and Year % 100 != 0 or Year %400 == 0:
return True
else:
return False
def year_month_days(Year, Month):
if Month in (1,3, 5, 7, 8, 10,12):
return 31
elif Month in (4,6, 9, 11):
return 30
elif is_leap_year(Year):
return 29
else:
return 28
def year_days(Year):
if is_leap_year(Year):
return 366
else:
return 365
def weekday_year_month(Year, Month):
Weekday = 2
for year in range(1800, Year):
Weekday = (Weekday + year_days(year) ) % 7
for month in range(1, Month +1):
Weekday = (Weekday + year_month_days(Year, month)) % 7
print Weekday
Y = int(raw_input())
M = int(raw_input())
weekday_year_month(Y, M)
题目内容:
如在汉诺塔游戏中,我们希望将塔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
else:
hanoi(n - 1, A, C, B)
print 'Move', n, 'from', A, 'to', C
hanoi(n - 1, B, A, C)
num = int(raw_input())
hanoi(num, 'A', 'B', 'C')