骨牌铺方格,这个程序有什么问题

#include
int sum(int a)
{
if(a==1)
return 1;
if(a==2)
return 2;
if(a>2){

    return sum(a-1)+sum(a-2);
}

}

int main()
{
__int64 a;
int n;
while(~scanf("%d",&n)&&n<=50){
a=sum(n);
printf("%I64d\n",a);
a=0;
}
return 0;

}

2个回答

堆栈次数太多,用递归太耗时了,改成循环

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问