zoukankan      html  css  js  c++  java
  • eggs

    知识点:递归函数


     题目


    Erin买了不少鸡蛋,她发现一天吃不完这么多,于是决定把n个同样的鸡蛋放在m个同样的篮子里,允许有的篮子空着不放,请问共有多少种不同的放法呢?

    注意:2,1,1和1,2,1 是同一种分法。

    Input

     第一行是测试数据的数目t(0 <= t <= 20)。以下每行均包含二个整数m和n,以空格分开。1<=m,n<=10。

    Output

    对输入的每组数据m和n,用一行输出相应的结果。

    例如:

    Input:

    4

    3 8

    4 7

    2 4

    4 2

    Output:

    10

    11

    3

    2

    (注意结尾有换行)


    My code
    #include<stdio.h>  //求出了放鸡蛋情况的总数.
    int way(int m, int n);
    int main() {
      int t, m, n;
      scanf("%d", &t);
      while (t--) {
      scanf("%d%d", &m, &n);
      printf("%d
    ", way(m, n));    
      }
      return 0;
    }
    
    int way(int m, int n) {  // m为篮子,n为鸡蛋 
        if (m == 1 || n == 1) {
              return 1;
        } else if (m >= n) {
            return 1+way(n-1, n);//篮子多余鸡蛋时等于每个篮子放一个鸡蛋的情况(1种)加上把鸡蛋放到比鸡蛋数量少1个篮子的情况数
    } else {
    return way(m, n-m)+way(m-1, n);//每个篮子放一个鸡蛋后剩下num_of_eggs-num_of_baskets个鸡蛋放到num_of_baskets个篮子里,不是全部的篮子用上的情况
    }
    }
  • 相关阅读:
    Linux(CentOS 7)iptables防火墙
    Linux(CentOS 7)DNS服务器搭建
    Linux(CentOS 7)LNMP环境搭建
    Linux(CentOS 7)nginx网站服务器
    Linux(CentOS 7)LAMP环境的搭建
    JavaScript 中repalce的使用
    DOM&BOM
    CSS颜色
    CSS中的单位
    Grid Layout 注释
  • 原文地址:https://www.cnblogs.com/pora/p/5037551.html
Copyright © 2011-2022 走看看