Python第四周:函数与递归函数

简介: 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinat_32502811/article/details/51160127 第一题:题目内容: 一个斐波那契数列的前10项为:1, 2, 3, 5, 8, 13, 21, 34, 55, 89,对于一个最大项的值不超过n的斐波那契数列,求值为偶数的项的和。
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinat_32502811/article/details/51160127

第一题:

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

输入格式:
一个正整数n,如100。

输出格式:
值为偶数的项的和,如 2 + 8 + 34 = 44。

输入样例:
100

输出样例:
44

```python

n = int(raw_input())
number = 1
even_sum = 0
def fib(num):
    if num == 1 or num == 2:
        return 1
    else:
        i = 2
        f1 = 1
        f2 = 1
        while i < num:
            f3 = f1 + f2
            f1 = f2
            f2 = f3
            i += 1
        return f3
def is_even(num):
    if num % 2 == 0:
        return True
    else:
        return False
while fib(number) < n:
    if is_even(fib(number)):
        even_sum += fib(number)
    number += 1
print even_sum

第二题:

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

输入格式:
两行整数,分别代表年份和月份

输出格式:
星期数,0代表星期日

输入样例:
2033
12

输出样例:
6

```python
y=int(raw_input())
m=int(raw_input())
def is_leapyear(year):
    if year%4==0 and year%100!=0 or year%400==0:
        return True
    else:
        return False
def 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_leapyear(year):
        return 29
    else:
        return 28
def get_all_days(year,month):
    days=0
    for i in range(1800,year):
        if is_leapyear(i):
            days += 366
        else:
            days+=365
    for j in range(1,month+1):
        days += month_days(year,j)
    return days
def get_endday(year,month):
    return (2+get_all_days(year,month))%7
print get_endday(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

```python
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)
n=int(raw_input())
hanoi(n,'A','B','C')
目录
相关文章
|
1天前
|
Java Python
全网最适合入门的面向对象编程教程:50 Python函数方法与接口-接口和抽象基类
【9月更文挑战第18天】在 Python 中,虽无明确的 `interface` 关键字,但可通过约定实现类似功能。接口主要规定了需实现的方法,不提供具体实现。抽象基类(ABC)则通过 `@abstractmethod` 装饰器定义抽象方法,子类必须实现这些方法。使用抽象基类可使继承结构更清晰、规范,并确保子类遵循指定的方法实现。然而,其使用应根据实际需求决定,避免过度设计导致代码复杂。
|
4天前
|
Python
全网最适合入门的面向对象编程教程:Python函数方法与接口-函数与方法的区别和lamda匿名函数
【9月更文挑战第15天】在 Python 中,函数与方法有所区别:函数是独立的代码块,可通过函数名直接调用,不依赖特定类或对象;方法则是与类或对象关联的函数,通常在类内部定义并通过对象调用。Lambda 函数是一种简洁的匿名函数定义方式,常用于简单的操作或作为其他函数的参数。根据需求,可选择使用函数、方法或 lambda 函数来实现代码逻辑。
|
17天前
|
Python
python 函数
【9月更文挑战第4天】python 函数
36 5
|
23天前
|
Python
Python 中 help() 和 dir() 函数的用法
【8月更文挑战第29天】
19 5
|
24天前
|
Python
12类常用的Python函数
12类常用的Python函数
|
23天前
|
Python
Python eval()函数的使用
Python eval()函数的使用
18 1
|
3天前
|
Unix 编译器 C语言
[oeasy]python034_计算机是如何认识abc的_ord函数_字符序号_ordinal_
[oeasy]python034_计算机是如何认识abc的_ord函数_字符序号_ord
12 0
|
17天前
|
数据采集 自然语言处理 数据挖掘
python查询汉字函数
简洁、高效、易懂的代码对于提高开发效率与项目质量至关重要,并且对于维持代码的可读性和可维护性也有着很大帮助。选择正确的工具和方法可以大幅提升处理中文数据的效率。在编写用户定义函数时,明确函数的功能与返回值类型对于函数的复用和调试也同样重要。当涉及到复杂的文本处理或数据分析时,不宜过分依赖单一的工具或方法,而应根据具体需求灵活选择和组合不同的技术手段。
22 0
WK
|
18天前
|
图计算 开发者 Python
python中的函数有哪些用途
Python中的函数具有多种用途,它们极大地增强了代码的复用性、可读性和可维护性。
WK
12 0
|
23天前
|
Python
Python 中的 Lambda 函数是什么?
【8月更文挑战第29天】
9 0