首页 > 编程 > Python > 正文

python练习2

2019-11-08 03:24:56
字体:
来源:转载
供稿:网友
1编写程序,完成下列题目:(1分)

题目内容:

一个斐波那契数列的前10项为:1, 2, 3, 5, 8, 13, 21, 34, 55, 89,对于一个最大项的值不超过n的斐波那契数列,求值为偶数的项的和。

输入格式:

一个正整数n,如100。

输出格式:

值为偶数的项的和,如 2 + 8 + 34 = 44。

输入样例:

100

输出样例:

44

n=input()sum1=1sum2=1sum3=2count=0while sum3<=n:    if sum3%2==0:        count+=sum3    sum1=sum2    sum2=sum3    sum3=sum1+sum2PRint count另一种方法def fib(n):    if n == 0 or n == 1:        return 1    else:        return fib(n - 1) + fib(n - 2)sum = 0i = 0num = int(raw_input())while fib(i) < num:    if fib(i) % 2 ==0:        sum += fib(i)    i += 1print sum

若已知1800年1月1日为星期3,则对于一个给定的年份和月份,输出这个月的最后一天是星期几。

输入格式: 两行整数,分别代表年份和月份 输出格式: 星期数,0代表星期日 输入样例: 2033 12 输出样例: 6

def is_leap_year(Year):     if Year % 4 ==0and Year % 100 !=0 or Year %400 ==0:         return True     else:         return Falsedef 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 28def year_days(Year):    if is_leap_year(Year):        return 366    else:        return 365def 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 WeekdayY = 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')


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表