列表

详情


NP95. 兔子的数量

描述

兔子的数量以这样的方式增长:每个月的兔子数量等于它前一个月的兔子数量加它前两个月的兔子数量,即f(n)=f(n-1)+f(n-2)。假设第1个月的兔子有2只,第2个月的兔子有3只,你能使用递归的方法求得第n个月的兔子有多少只吗?

输入描述

输入正整数n,n<10。

输出描述

输出第n个月的兔子数量。

示例1

输入:

3

输出:

5

说明:

第一个月2只+第二个月3只=第三个月5只

原站题解

Python 解法, 执行用时: 13ms, 内存消耗: 2996KB, 提交时间: 2022-07-29

x=int(input(''))
c=1
v=[1,1]
for j in range(x):
    c=c+v[-2]
    v.append(c)
print(v[-1])

Python 解法, 执行用时: 14ms, 内存消耗: 2964KB, 提交时间: 2022-08-01

def number(n):
    if n == 1:
        return 2
    elif n == 0:
        return 1
    else:
        return number(n - 1) + number(n - 2)


n = int(input())
print(number(n))

Python 解法, 执行用时: 14ms, 内存消耗: 2976KB, 提交时间: 2022-08-01

n=int(input())
def count(n):
    if n > 2:
        k=count(n-1)+count(n-2)
        return k
    elif n ==1:
        return 2
    elif n == 2:
        return 3

print(count(n))

Python 解法, 执行用时: 15ms, 内存消耗: 3000KB, 提交时间: 2022-08-02

def fb(n):
    if(n==1):
        return 2
    elif(n==2):
        return 3
    else:
        k=fb(n-1)+fb(n-2)
        return k

n=int(input())
print(fb(n))

Python 解法, 执行用时: 15ms, 内存消耗: 3044KB, 提交时间: 2022-07-31

def fun(n):
    if n == 1:
        return 2
    elif n == 2:
        return 3
    else:
        return fun(n-1)+fun(n-2)
i = int(input())
print fun(i)

上一题