首页 > 试题广场 >

牛牛学数列6

[编程题]牛牛学数列6
  • 热度指数:395 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
\hspace{15pt}定义数列 \{A_n\} 如下:

\displaystyle A_n=<br />\begin{cases}<br />0,& n\in\{1\};\\<br />1,& n\in\{2,3\};\\<br />\displaystyle A_n = A_{n-3} + 2A_{n-2} + A_{n-1},& n \geqq 4.<br />\end{cases}

\hspace{15pt}给定正整数 n,求 A_n 的值。

输入描述:
\hspace{15pt}在一行中输入一个整数 n,满足 1 \leqq n \leqq 20


输出描述:
\hspace{15pt}输出一个整数,表示 A_n 的值。
示例1

输入

4

输出

3

说明

A_4 = A_1 + 2A_2 + A_3 = 0 + 2\times1 + 1 = 3
n = int(input())
if n == 1:
    print(0)
elif n == 2 or n == 3:
    print(1)
else:
    a, b, c = 0, 1, 1  
    for i in range(4, n + 1):  
        result = a + 2 * b + c  
        a, b, c = b, c, result  
    print(c)
发表于 2025-06-05 17:14:46 回复(0)
n = int(input())
a = []
a1 = 0
for i in range(n):
    if i == 0:
        a.append(0)
    elif i >0 and i <= 2:
        a.append(1)
    else:
        a.append(a[a1]+2*a[a1+1]+a[a1+2])
        a1+=1
print(a[-1])
发表于 2025-05-27 11:49:51 回复(0)