[白俊]9095:1,2,3加


質問する



問題を解く


n=1からn=4まで、以下のルールを見つけました.

つまり、ルールは次のようになります.
f(n) = f(n-3) + f(n-2) + f(n-1)
n番目の数字は、次の場合の数字で演算できます.
  • n-3演算の組み合わせに3を加えると
  • になる.
  • n-2演算組合せプラス2は
  • に等しい.
    2479172 n-1次面演算の組み合わせに1を加える2479182を表す.

    コード#コード#

    
    import java.util.Scanner;
    
    public class ANS9095 {
        static Integer[] dp;
    
        public static void main(String[] args){
    
            Scanner sc = new Scanner(System.in);
            int num = sc.nextInt();
    
            dp= new Integer[14];
            dp[0] = 0;
            dp[1] = 1;
            dp[2] = 2;
            dp[3] = 4;
    
            for(int i = 0 ; i < num ; i++){
                int element = sc.nextInt();
                System.out.println(recur(element));
            }
    
        }
    
        static int recur(int N){
            if(dp[N] == null){
                for(int i = 4 ; i < N+1  ; i++){
                    dp[i] = dp[i-3] + dp[i-2] + dp[i-1];
                }
            }
    
            return dp[N];
        }
    }