小猴吃桃

所属作业: hw7 算法: 递归

递归(基本解法)

完整代码:

1
2
3
4
5
6
7
8
9
def peach(n):
    if n==1:
        return 1
    else:
        return(peach(n-1)+1)*2
m=int(input())
for i in range(m):
    n=int(input())
    print(peach(n))

如何记忆化?(基本解法)

递推的变形(已优化空间)(基本解法)

1
2
3
4
5
6
7
m = int(input())
for i in range(m):
    n = int(input())
    sum = 1
    for j in range(n-1):
        sum = (sum+1)*2
    print(sum)

典型错误1

1
2
3
4
5
6
7
m = int(input())
for i in range(m):
    n = int(input())
    sum = 1
    for j in range(n):
        sum = (sum+1)*2
    print(sum)

典型错误2

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
def f(n):
    if n == 1:
        return 1
    else:
        x_n = 1
        for i in range(n):
            end = 2*x_n + 2
            x_n = end
        return int((x_n/2)-1)

m = int(input())
result = []
for i in range(m):
    n = int(input())
    result.append(f(n))
    #print(result)
for j in range(len(result)):
    print(result[j])

数学

1
2
3
4
n = int(input())
print( 2**n + 2 ** (n - 1) - 2 )
# 或者
print( (3 << (n-1)) - 2 )