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

    【题目描述】

    把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


    
    
    还是递归;
    我们可以把情况分为两种;
    1.有空盘子;
    2.无空盘子;
    有空盘子时,
    从一个空盘开始递归,
    1-2-3....
    无空盘子时,
    每个盘子至少一个苹果,
    放完一个,
    还剩m-n个苹果,
    以此类推,
    然后把两种情况加起来,
    和就是结果。
     1 #include<iostream>
     2 using namespace std;
     3 int t,m,n;
     4 int apple(int,int);
     5 int main()
     6 {
     7     cin>>t;
     8     for(int i=1;i<=t;i++)
     9     {
    10         cin>>m>>n;
    11         cout<<apple(m,n)<<endl;
    12     }
    13     return 0;
    14 }
    15 int apple(int m,int n)
    16 {
    17     if(m==0||n==1) return 1;
    18     if(m<n) return apple(m,m);
    19     return apple(m-n,n)+apple(m,n-1);
    20 }

    每日打卡O(∩_∩)O~

    
    
    看不见我看不见我看不见我
  • 相关阅读:
    STM32 USB应用——VCP
    基础数据类型与字节数组相互转换 BitConvter类
    C# 16进制与字符串、字节数组之间的转换
    C语言函数手册学习
    C串口通信
    C#串口通信
    C Socket通信编程
    C SOCKET编程
    C# SOCKE通信
    socket阻塞与非阻塞,同步与异步、I/O模型
  • 原文地址:https://www.cnblogs.com/sxy2004/p/11478716.html
Copyright © 2011-2022 走看看