题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1723
题解:dp[i]表示传到第i个有dp[i]种方法,i可以传给后面1--m之间任意一个人dp[i+j]+=dp[i]
#include <stdio.h>
#include <string.h>
int main()
{
int n,m,i,j;
int dp[32];
while (scanf("%d %d",&n,&m)&&n)
{
memset(dp,0,sizeof(dp));
dp[1]=1;
for(i=1;i<=n;++i)
{
for(j=1;j<=m;++j)
{
if(i+j<=n)
dp[i+j]+=dp[i];
}
}
printf("%d\n",dp[n]);
}
return 0;
}