寝癖頭の解法

学習中の覚え書きを投稿、更新していきます。

paizaラーニング: Javaによる「シミュレーション」問題集

paizaラーニングのレベルアップ問題集「Cランクレベルアップセット」からの出典です。
paiza.jp
Javaによる「シミュレーション」問題集と、それらの提出コードの解答例です。

僕が作成、提出したコードは、以下のとおりです。

・STEP: 1 条件を満たす最小の自然数

/*
Javaによる「シミュレーション」問題集
STEP: 1  条件を満たす最小の自然数
https://paiza.jp/works/mondai
提出コードの解答例
https://neguse-atama.hatenablog.com
*/
public class Main {
    public static void main(String[] args) {
        int count = 10000;
        for(int i = 10000; i % 13 != 0; i++){
            if(i % 13 == 0){
                break;
            }
            count++;
        }
        System.out.println(count);
    }
}

・STEP: 2 シミュレーションの練習

/*
Javaによる「シミュレーション」問題集
STEP: 2 シミュレーションの練習
https://paiza.jp/works/mondai
提出コードの解答例
https://neguse-atama.hatenablog.com
*/
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int a = sc.nextInt();
        int b = sc.nextInt();
        int paiza = 1;
        int kyoko = 1;
        for(int count = 1; kyoko <= n; count++){
            kyoko = kyoko + (paiza * a);
            paiza = paiza + (kyoko % b);
            if(kyoko > n){
                System.out.println(count);
                break;
            }
        }
    }
}

・FINAL問題: シミュレーション

/*
Javaによる「シミュレーション」問題集
FINAL問題: シミュレーション
https://paiza.jp/works/mondai
提出コードの解答例
https://neguse-atama.hatenablog.com
*/
import java.util.Scanner;
public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        int h = sc.nextInt();
        int count = 0;
        for(int n = 0; h > 0; n++){
        	if(n % 2 == 0){
                h = h - fibo(n);
                count++;
        	}
        }
        System.out.println(count - 1);
    }

    static int fibo(int n){
    	if(n == 0){
    		return 0;
    	}else if(n < 5){
    		return 1;
    	}else if(n % 2 != 0){
    		return fibo(n - 1) + fibo(n - 3);
    	}else{
    		return fibo(n - 3) + fibo(n - 3) + fibo(n - 5);
    	}
    }

}

paizaラーニングのレベルアップ問題集については、ユーザー同士で解答を教え合ったり、コードを公開したりするのは自由としています。
また授業や研修、教材などにも利用できるそうです。