[今日の珂太練習場]-白俊9625号

4485 ワード

質問する



トラブルシューティングプロセス


問題を解き始めたばかりの頃.
  • 変数Kは、a,b個の入力
  • を受け付ける.
  • void a()関数とb関数を構築し、両方の関数を文に変換し、それぞれaをb、bをbaに変換します.
  • このように問題解決過程を書いたが,DP問題であるため,6回のボタンを押すまでのa,bの個数を規則的に数えるべきである.
    数えたら法則がある.
    A → BA → BAB → BABBA ... このように規則に従ってA,B,A,Bの個数を直接変換する.
    K番号AのB番号10121131242335658
    Aの個数はBのK-1の個数と同じである
    Bの個数はK-1のAとBの個数を加算した値である.
    こうしてA,B値の規則性を見出し,それを定式化して表現し,コードを実現した.
    import java.util.Scanner;
    
    public class Main {
        public static void main(String[] args) {
            Scanner scan = new Scanner(System.in);
            int k=scan.nextInt();
            int A=0; int B=1;
            int sum=0;
            for(int i=1;i<k;i++){
                sum=A+B;
                A=B;
                B=sum;
            }
            System.out.println(A);
            System.out.println(B);
        }
    }

    振り返る


    最初にA,Bを規則的に変換すると,変換エラーにより規則性が見つからない.
    最初からもう一度問題を見て、もう一度やって、法則性を見つけました.
    これからは問題をよく読んでください.