コーディングテスト練習記録

8362 ワード

2022.04.04 99日目


白俊2775号(婦人会長になる)


質問する


普段からクラス会に参加するのが好きな朱熹は、この機会に女性会長になり、各階層の人を集めてクラス会を組織しようとした.
このアパートに住むには条件があり、「a階のb番に住むには、自分の下(a-1)階の1番からb番までの人数で、人を連れて帰って住む」という契約条項を守らなければならない.
アパートに空き家がないと仮定し、すべての住民がこの契約条件を守ったとすると、与えられた正の整数kとnに対して、k階印刷n号に何人が住んでいるのか.しかし、マンションは0階から、各階は1番から、0階のi号はi名である.

私の答え

  • の状況を考慮した数量
    3 => 1, 5, 15, 35
    2 => 1, 4, 10, 20
    1 => 1, 3, 6, 10
    0 => 1, 2, 3, 4
  • 条件1-1号、層にかかわらず
  • 条件2-0レベルで1を増やし、次のレベルに現在のレベルの前の番号と前のレベルの前の番号を追加します.
  • アレイは、以前と現在の値を加えると
  • にアクセスできます.
  • デュアルfor文階層を使用して
  • を割り当てる
    import java.io.*;
    import java.util.*;
    
    public class Main {
        public static void main(String[] args) throws IOException {
            BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
            BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
    
            int T = Integer.parseInt(br.readLine());
    
            for (int i = 0; i < T; i++) {
                int k = Integer.parseInt(br.readLine());
                int n = Integer.parseInt(br.readLine());
    
                int count = 0;
                int[] nArr = new int[n];
    
                for (int j = 0; j < n; j++) {
                    nArr[j] = j + 1;
                }
    
                for (int j = 0; j < k; j++) {
                    for (int l = 1; l < n; l++) {
                        nArr[l] = nArr[l - 1] + nArr[l];
                    }
                }
    
    
                System.out.println(nArr[n - 1]);
            }
        }
    }

    考える