递归:牛牛学数列:JAVA
链接:登录—专业IT笔试面试备考平台_牛客网
来源:牛客网
有一个数列
已知
A1=0
A2=1
A3=1
A4=A1+2∗A2+A3A_4
A5=A2+2∗A3+A4A_5=
......
求An
输入描述:
输入一个整数n (1≤n≤201 \le n \le 201≤n≤20)
输出描述:
输出一个整数
示例1
输入
4
输出
3
代码:
import java.util.Scanner;
//题目A1=0,A2=1,A3=1,A4=A1+2*A2+A3,A5=A2+2*A3+A4,输入n=4得到的值为3,求A(n)
//解题思路
//递归
public class Main {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
int n=scanner.nextInt();
System.out.println(Fib(n));
}
public static int Fib(int n){
if(n==1){
return 0;
}else if(n==3||n==2){
return 1;
}
//Fib(4)=Fib(1)+2*Fib(2)+Fib(3)=3
//Fib(5)=Fib(2)+2*Fib(3)+Fib(4)=6
int num=Fib(n-3)+Fib(n-2)*2+Fib(n-1);
return num;
}
}