早教吧 育儿知识 作业答案 考试题库 百科 知识分享

用C++编程、最好有详细过程题目:放苹果把M个同样的苹果放在N个同样的盘子里,可以有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1是同一种分法。输入:第一行是测

题目详情
用C++编程、最好有详细过程
题目:放苹果
把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
▼优质解答
答案和解析
。。。。。。。。。。。。
。。。。。。。。。。。。
给你分析了半天!!!!!
//总体思路:其实它是一个递归问题!
//怎么说啊!一言难尽呀!
//比如说;7个苹果,3个盘子 可以分为三种情况:1:只用一个盘子 2:用两个盘子 3:用三盘子
//第一种情况就不说了,第二种情况:我们又可以把此情况看成5个苹果放入3个盘子—跟原题一
//样,就这样一直递归下去。。。那么第三种情况分析同第二种情况!
//一言难尽啊,只有你你自己慢慢体会才能领悟啊。。。。。。。
代码如下:
#include
using namespace std;
int TimesOfAppleToPlate(int m,int n)
{
static int count=0;
count++;
for(int i=2;i<=(n {
if( (m-i)>0 )
TimesOfAppleToPlate(m-i,i);
else if( (m-i)==0 )
count++;
else ;
}
return count;
}
int main()
{
int t;
int m,n;
cin>>t;
while(t--)
{
cin>>m>>n;
cout< }
return 0;
}