• 43.放苹果(递归练习)



    放苹果

    总时间限制: 

    1000ms

     

    内存限制: 

    65536kB

    描述

    M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)511151 是同一种分法。

    输入

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

    输出

    对输入的每组数据MN,用一行输出相应的K

    样例输入

    
    1
    
    
    7 3
    

    样例输出

    
    8
    

    分析:

    这是“数的划分”那道题的变式,无非就是篮子可以为空不同而已,就加一个for循环就行了

    代码:

    #include

    using namespace std;

    int f(int,int,int);

    int t;

    #include

    int main()

    {

           scanf("%d",&t);

           for(int i=1;i<=t;++i)

           {

                  int m,n;

                  long long sum=0;

                  scanf("%d%d",&m,&n);

                  for(int j=1;j<=n;++j)

                  sum+=f(m,j,1);

                  printf("%lld ",sum);

           }

           return 0;

    }

    int f(int a,int b,int c)

    {

           int g=0;

           if(b==1) return 1;

           else{

                  for(int i=c;i<=a/b;++i)

                  g+=f(a-i,b-1,i);

                  return g;

           }

    }

  • 相关阅读:
    vue 中 过滤filter 和 foreach的使用
    vuex 获取数据
    动态设置样式 calc计算
    vue-echarts-v3 使用 dataZoom属性 相关笔记
    访存加速-Speed-up of Memory Access Intensive Program
    台式机新添内存条无法开机?
    ADB的版本问题
    1184. Distance Between Bus Stops
    485. Max Consecutive Ones
    448. Find All Numbers Disappeared in an Array
  • 原文地址:https://www.cnblogs.com/csgc0131123/p/5290421.html
Copyright © 2020-2023  润新知