據說是組合數學中的T路問題C(m,m+n)

經同學解釋,理解了,居然沒反應過來。。。
一共走n+m步,只要從中間找出n步向上的組合,剩下的都是向右了。。。
#include < iostream >
using namespace std;
double com (double n,double m)
{
    
double i;
    
double result(1);
    
if ( n >= m - n ){ n = m-n; }
    
for ( i = m;i >= m-n+1;i-=1 )
    
{
        result 
*= (i / (i - (m - n)));
    }

    
return result;
}

int main()
{
    
double n,m;
    
while (1)
    
{
        scanf(
"%lf%lf",&n,&m);
        
if ( n==0 && m==0 )break; }
        printf(
"%.0lf\n",com (n,m+n));
    }

    
return 0;
}