比赛的时候刷了一点小聪明,发现这个数列是卢卡斯数,一个递推关系像斐波拉契数列的数列;
我不知道怎么证明,如果哪天无意中会证了再加上;
这题唯一的难点就是大数运算;
直接用JAVA
代码:
1 import java.io.PrintWriter; 2 import java.math.BigInteger; 3 import java.util.Scanner; 4 5 public class Main { 6 Scanner scan=new Scanner(System.in); 7 PrintWriter out=new PrintWriter(System.out); 8 BigInteger c[]=new BigInteger[10005]; 9 int n; 10 11 void getc(){ 12 c[3]=BigInteger.valueOf(4); 13 c[4]=BigInteger.valueOf(7); 14 for(int i=5;i<=10001;i++) 15 c[i]=c[i-2].add(c[i-1]); 16 } 17 18 void run(){ 19 getc(); 20 while(scan.hasNextInt()){ 21 n=scan.nextInt(); 22 out.println(c[n]); 23 out.flush(); 24 } 25 } 26 public static void main(String[] args) { 27 new Main().run(); 28 } 29 }