放苹果

题目描述
把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法。
输入
每个用例包含二个整数M和N。0<=m<=10,1<=n<=10
样例输入 7 3
样例输出 8

/**
* 计算放苹果方法数目
* 输入值非法时返回-1
* 1 <= m,n <= 10<><= m,n <= 10<>
* @param m 苹果数目
* @param n 盘子数目数
* @return 放置方法总数
*/

public static int count(int m, int n)

 

public final class Demo {

    public static int count(int m, int n) {
        if (n < 1 || m > 10 || m < 0 || n > 10) {
            return -1;
        }

        if (m == 1 || m == 0 || n == 1) {
            return 1;
        }
        if (n > m) {
            return 1 + count(m, m - 1);
        } else {
            return count(m, n - 1) + count(m - n, n);
        }
    }
}

 

posted @ 2018-11-17 11:09  牧 天  阅读(116)  评论(0)    收藏  举报