7.8 python 函数

在这里插入图片描述
在这里插入图片描述

缺省参数

在这里插入图片描述
如果实参没有给,就是用默认参数值

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,不包括180011日
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')
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值