递推 还是比较容易的
/*************************************************************************
> Author: xlc2845 > Mail: xlc2845@gmail.com
> Created Time: 2013年10月19日 星期六 08时22分48秒
************************************************************************/ #include <iostream>
#include <cstdlib>
#include <cstdio>
#include <cstring>
#include <string>
using namespace std; int d[110][110]; int n, k; int main()
{
while(scanf("%d%d",&n,&k) == 2 && n+k)
{
memset(d, 0, sizeof(d));
for(int i = 0; i <= k; i++)
d[i][0] = 1;
for(int i = 1; i <= k; i++)
{
for(int j = 1; j <= n; j++)
{
for(int q = 0; q <= j; q++)
{
d[i][j] += d[i-1][j-q];
d[i][j] %= 1000000;
}
}
}
printf("%d\n", d[k][n]);
}
return 0;
}