#12648: 如何解決逾時(TLE)問題?


nkmu1051241229 (想像天然(Java))


import java.util.Scanner;
public class d580 {
    public static void main(String[] args){
        Scanner kin = new Scanner(System.in);
        d580 s1 = new d580();
        while(kin.hasNext()){
            long n = kin.nextLong();
            System.out.println((s1.T(n))%2012);
        }
    }
    public long T(long n){
        if(n>=2)  return T(n-1)+T(n-2);
        else  return 1;
    }
}
#12651: Re:如何解決逾時(TLE)問題?


anandrewboy70900 (ShowTsai)


遞迴太慢了
用陣列把結果存起來
arr[0] = 1
arr[1] = 1
arr[n] = (arr[n-1] + arr[n-2]) % 2012




#12652: Re:如何解決逾時(TLE)問題?


justinO__o (夜貓)


遞迴太慢了
用陣列把結果存起來
arr[0] = 1
arr[1] = 1
arr[n] = (arr[n-1] + arr[n-2]) % 2012





也可以遞迴啦 加個記憶化就行