首页 > 试题广场 >

牛牛学数列6

[编程题]牛牛学数列6
  • 热度指数:18244 时间限制: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())
A = [0,0,1,1]
if 1<=n<=20:
    for i in range(4,n+1):
        nxt = A[i-3] +2*A[i-2] + A[i-1]
        A.append(nxt)
    print(A[n])
发表于 今天 11:26:24 回复(0)
n=int(input())
p=1<=n<=20
a=[0]*(n+1)
a[1],a[2],a[3]=0,1,1
if p:
    for i in range(4,n+1):a[i]=a[i-3]+2*a[i-2]+a[i-1]
print(a[n])

发表于 2025-11-03 15:01:55 回复(0)
import sys


def calc_arry(n):
    if n < 0:
        return False
    if n == 1:
        return 0
    if n == 2&nbs***bsp;n == 3:
        return 1
    a, b, c = 0, 1, 1
    for _ in range(n - 3):
        a, b, c = b, c, (a + 2 * b + c)
    print(c)


for line in sys.stdin:
    n = int(line.strip())
    calc_arry(n)

发表于 2025-10-28 20:55:10 回复(0)
m=[]
n=int(input())
m.append(0)
m.append(0)
m.append(1)
m.append(1)
if n==1:
    print(0)
   
elif n==2 or n==3:
    print(1)
else:
    for i in range(4,n+1):
        m.append(m[i-3]+2*m[i-2]+m[i-1])
       
print(m[n])
发表于 2025-10-17 11:39:57 回复(0)
n =int (input())
if n==1:
    print(0)
elif n==2 or n==3:
    print(1)    
else:
    a=0
    b=1
    c=1
    for i in range(4, n+ 1):
        sum=a+2*b+c
        a=b
        b=c
        c=sum
    print(sum)    
发表于 2025-09-23 16:54:58 回复(0)
n = int(input())

A = [0] * (n+1)

A[1] = 0
A[2] = 1
A[3] = 1

for i in range (4, n+1):
    A[i] = A[i-3] + 2*A[i-2] + A[i-1]

print(A[n])

///
n = int(input())
a = 0
b = 1
c = 1
An = 0

if (n == 1):
    print(0)
elif (2 <= n <= 3):
    print(1)
else:
    for i in range (4, n+1):
        An = a + 2*b + c
        a = b
        b = c
        c = An
    print(An)


发表于 2025-07-14 16:53:53 回复(0)
n=int(input())
i=3
a=0
b=1
c=1
if n == 1:
    print(0)
elif n == 2 or n == 3:
    print(1)
else:
    while i <n:
        z=c
        c=a+2*b+c
        a=b
        b=z
        i+=1
       
    print(c)

发表于 2025-07-12 21:30:07 回复(0)