2019-05-07

2041:題目鏈接:http://acm.hdu.edu.cn/showproblem.php?pid=2041

解題代碼:

#include<stdio.h>

int main()

{

int n;

scanf("%d",&n);

while(n--)

{

int a[41],m,i;

scanf("%d",&m);

a[1]=0;

a[2]=1;

a[3]=2;

if(m>3)

{

for(i=4;i<=m;i++)

{

a[i]=a[i-1]+a[i-2];

}

}

printf("%d\n",a[m]);

}

return 0;

}

這道題的思路:我先列舉前幾項(xiàng)輸出結(jié)果,發(fā)現(xiàn)解題思路和前面第2018題的“母牛的故事”相似,也是用到遞歸的想法。剛開(kāi)始我把數(shù)組a的大小設(shè)定為40,但在系統(tǒng)上面一直不通過(guò),經(jīng)過(guò)多次嘗試,我把其大小改大了一點(diǎn)后(上方改成41)就通過(guò)了。經(jīng)驗(yàn)教訓(xùn)是:下次定義數(shù)組時(shí)可以把它的大小稍微定義大一點(diǎn)(就不用想那么多了)。


還有一道題也是用到了遞歸的思想:2044

題目鏈接:http://acm.hdu.edu.cn/showproblem.php?pid=2044


解題代碼如下:

#include<stdio.h>

int main()

{

int n;

scanf("%d",&n);

while(n--)

{

int a,b,i;

scanf("%d%d",&a,&b);

long long c[100];

c[1]=1;

c[2]=2;

if(b-a>2)

{

for(i=3;i<=b-a;i++)

{

c[i]=c[i-1]+c[i-2];

}

}

printf("%lld\n",c[b-a]);

}

return 0;

}

這道題做完后代碼運(yùn)行結(jié)果沒(méi)問(wèn)題,但在系統(tǒng)上面一直不通過(guò),一直找不到問(wèn)題所在。在查看大佬們的做法后發(fā)現(xiàn)原來(lái)我忽略了數(shù)組的溢出問(wèn)題,我原先是把數(shù)組c定義成int類(lèi)型,但后面的運(yùn)行結(jié)果明顯會(huì)超出int的范圍,于是我把int改成long long類(lèi)型,就成功通過(guò)了!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀(guān)點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容