#include <stdio.h>
#include<math.h>
long f(int n,int m)
{
if(n==0&&m==0)
return(0);
if(n==0&&m!=0)
return(1);
if(m==0&&n!=0)
return(1);
return(f(n-1,m)+f(n,m-1));
}
int main()
{long a,b,c;
while(scanf("%d %d",&a,&b)!=EOF)
{
c=f(a,b);
printf("%d\n",c);
}
return 0;
}
这个程序在a,b都变得很大的时候会算的很慢,到19,19后几乎就不输出了,而且好像17,17以后数就不对了,a,b都是小于等于25的就行了,真心求大神怎么改啊,小白都想了三天了
@linjunfei1996
#include<math.h>
long f(int n,int m)
{
if(n==0&&m==0)
return(0);
if(n==0&&m!=0)
return(1);
if(m==0&&n!=0)
return(1);
return(f(n-1,m)+f(n,m-1));
}
int main()
{long a,b,c;
while(scanf("%d %d",&a,&b)!=EOF)
{
c=f(a,b);
printf("%d\n",c);
}
return 0;
}
这个程序在a,b都变得很大的时候会算的很慢,到19,19后几乎就不输出了,而且好像17,17以后数就不对了,a,b都是小于等于25的就行了,真心求大神怎么改啊,小白都想了三天了
@linjunfei1996



