【牛客網】放蘋果

在這裏插入圖片描述

是一個數學題目:應用了遞歸的思想。f(m,n) m爲蘋果數,n爲盤子數。如果n>m f(m,n)=f(m,m) 因爲一定有n-m個盤子是空的。如果n<=m,f(m,n)=f(m-n,n)+f(m,n-1)。分成了兩種情況,每一個盤子都有蘋果;至少有一個盤子沒有蘋果。利用這個遞推公式就可以求出答案。


import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        while (in.hasNext()) {
            int apple = in.nextInt();
            int plate = in.nextInt();
            System.out.println(method(apple, plate));
        }
    }

    public static int method(int apple, int plate) {
        if (plate == 0) return 0;
        if (apple == 0 || plate == 1) {
            return 1;
        }
        if (plate > apple)
            plate = apple;

        // 分成兩種情況。所有的盤子都有蘋果;至少有一個盤子沒有蘋果
        return method(apple - plate, plate) + method(apple, plate - 1);

    }
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章