盒子放球
问题描述:
k个相同的球放入n个不同的盒子。你的任务是计算有多少种不同的放法。
输入:
输入文件中有若干行。每一行上有两个正整数n和k是一组测试数据,(n³1,k³0)。
输入直到文件结束。
输出:
对输入文件中的每组测试数据,在输出文件输出k个球放入n个不同的盒子放法数。
输入样例:
3 4
1 4
输出样例
15
1
#include<iostream>
#include<stdio.h>
using namespace std;
int com(int n,int r)
{
int i,j,s=1;
if(n-r<r)r=n-r;
for(i=0,j=1;i<r;i++)
{
s*=(n-i);
while(j<=r&&s%j==0)
{
s/=j;j++;
}
}
return s;
}
int main()
{
int n,k;
while(cin>>n>>k)
{
printf("%d\n",com(n+k-1,k));
}
return 0;
}