首页 > 试题广场 >

牛牛学数列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
头像 Ander_acc
发表于 2025-06-03 14:12:44
n = int(input()) a,b,c = 0,1,1 for i in range(n-3): a,b,c =b,c,(a+2*b+c) # 更新赋值,使得c对应我们要得到的值 print(c)
头像 小小嘉元
发表于 2021-04-07 19:34:20
#include<stdio.h>//递归调用摆出数列规律int An(n){ if(n == 1){ return 0; }else if(n == 2){ return 1; }else if(n == 3){ return 展开全文
头像 李华plus
发表于 2021-10-15 22:04:44
#include<stdio.h> int TMD(int x) { if(x==1)return 0; else if(x<=3)return 1; return TMD(x-3)+2*TMD(x-2)+TMD(x-1); } int main() { int n; scanf( 展开全文
头像 徐天虞
发表于 2025-03-19 18:08:30
#include <iostream> using namespace std; int main(){ int n; int a=0,b=1,c=1,d; cin>>n; if(n==1){ cout<<0; 展开全文
头像 麻花蘸豆浆
发表于 2020-02-10 18:37:06
include<stdio.h> main(){int n,m,f1=1,f2=1,f;scanf("%d",&n);if(n<3){printf("%d",f1);} else {for(m=2;m<n;m++) {f=f1+f2; f1=f2; f2=f;} 展开全文
头像 Ayx03
发表于 2022-03-10 21:06:39
简单递推 #include<stdio.h> int n,a[21]={0,0,1,1}; int main(){ scanf("%d",&n); for(int i=4;i<=n;i++) a[i]=a[i-3]+2*a[i-2]+a[i-1]; 展开全文
头像 牛客216979817号
发表于 2025-05-30 07:23:27
import java.util.Scanner; public class Main{     public static void main(String []args){   展开全文
头像 纯白之礼
发表于 2025-08-16 18:37:17
#include <stdio.h> int main() { int n; scanf("%d",&n); int a[21]; a[1]=0; a[2]=1; a[3]=1; for(int i=4 展开全文
头像 牛客139470793号
发表于 2025-10-22 13:11:36
#include "iostream" using namespace std; int main(){ int n; cin>>n; int A[n]; for(int i = 1;i<=n;i++){ if(i 展开全文
头像 意若久时天然呆
发表于 2025-11-03 15:02:39
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])