zoukankan      html  css  js  c++  java
  • 666:放苹果

    666:放苹果

    总时间限制: 
    1000ms
     
    内存限制: 
    65536kB
    描述
    把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法。
    输入
    第一行是测试数据的数目t(0 <= t <= 20)。以下每行均包含二个整数M和N,以空格分开。1<=M,N<=10。
    输出
    对输入的每组数据M和N,用一行输出相应的K。
    样例输入
    1
    7 3
    
    样例输出
    8
    来源
    lwx@POJ
     1 #include<cstdio>
     2 #include<cstring>
     3 #include<iostream>
     4 #include<algorithm>
     5 using namespace std;
     6 int t;//测试数据数量
     7 int n;//苹果数 
     8 int m; //盘子数
     9 int tot=0;//最多有几种放法
    10 int f(int a,int b)
    11 {
    12     if(a<=1||b<=1)//当只有一个苹果或一个盘时,只有一种放法 
    13     return 1;
    14     if(a<b)
    15     return f(a,a);//苹果数<盘数,则最多只有b个盘有苹果
    16     else 
    17     return f(a,b-1)+f(a-b,b);///如果有一个不放,则有 f(a,b-1)种;如果每个都放,则相当于 f(a-b,b)
    18  } 
    19 int main()
    20 {
    21 
    22     cin>>t;
    23     for(int i=1;i<=t;i++)
    24     {
    25         cin>>m>>n;
    26         cout<<f(m,n)<<endl;
    27      } 
    28     return 0; }
  • 相关阅读:
    动态页面技术(JSP/EL/JSTL)
    JavaWeb核心之Servlet
    会话技术Cookie&Session
    待整理
    二进制中1的个数(python)
    矩形覆盖(python)
    变态跳台阶(python)
    跳台阶(python)
    斐波那契数列(python)
    旋转数组的最小数字(python/c++)
  • 原文地址:https://www.cnblogs.com/zwfymqz/p/6527295.html
Copyright © 2011-2022 走看看