测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A41303. 放苹果把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

填空题 中等

题目描述

放苹果

把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

参考答案

#include <bits/stdc++.h> using namespace std; int f[12][12]; void f_(){ for(int i=0;i<=12;i++) for(int j=0;j<=12;j++){ f[i][j]=1;//注意:m,n为0时也初始化为1 if(i==1||j==1) f[i][j]=1; else if(i<j) f[i][j]=f[i][i]; else f[i][j]=f[i-j][j]+f[i][j-1]; } } int main() { int t,n,m; cin>>t; f_(); while(t--){ cin>>m>>n; cout<<f[m][n]<<endl; } return 0; }
上一题 下一题