最近中文字幕高清中文字幕无,亚洲欧美高清一区二区三区,一本色道无码道dvd在线观看 ,一个人看的www免费高清中文字幕

為了賬號安全,請及時綁定郵箱和手機立即綁定

誰能給個詳細(xì)的解釋,真的沒懂

那個遞歸函數(shù)到底咋樣運行的?

正在回答

3 回答

遞歸函數(shù)就是將在自己方法本身調(diào)用自身,可以舉個生活中的小例子

例如某天,一個老師讓他拿著一堆數(shù)字開片,他給自己的學(xué)生每個人一張,,老師只要求大于等于0的人來按順序排隊,他將一個50給了第一個人,然后要求比他小10的人站出來,之后要求比前一個(就是50-10,拿到40的人)小10的人站出來,然后再出來一個比上一個小10的人出來,以此類推,直到有拿到了0的站出來,那么這一隊當(dāng)中就有了

50,40,30,20,10,0這幾數(shù)字的持有者,老師要求大于等于0的人就是這個遞歸的結(jié)束語句,因為只要求大于等于0的,最后一個是0,比他小10的人肯定不大于他,所以遞歸結(jié)束

int?getSum(int?n);????//定義方法
int?main()????//主函數(shù),程序入口
{
????int?i?=?getSum(50);????//定義一個變量用于接收getNum方法的返回值
????printf("這幾個人手中的卡片總和為%d\n",i);
}
int?getSum(int?n)????//剛剛定義了getSum方法,這里是具體實行
{?????//這兩個方法中的?i?都是在方法中定義,為局部變量,所以互不干擾
????if(n?>?0)
????{
????????int?i?=?getSum(n-10)?+?n;??//以下進(jìn)行詳細(xì)解析,解析代碼不符合標(biāo)準(zhǔn)寫法,只是形式相同
????????return?i;
?????}
?????return?0;//在n的值小于0以前不執(zhí)行這個
}

這個代碼它的實際流程是這樣,主函數(shù)還是上面那個,不寫了

int?getSum(int?n)?//主函數(shù)調(diào)用時傳入實參給此形參,實參值為50,所以這個形參也就是50
{?????????????????//?1?剛剛調(diào)用了本方法,并且傳入了40,往下執(zhí)行
??????????????????//?2?剛剛調(diào)用了本方法,并且傳入了30,往下執(zhí)行
??????????????????//?3?剛剛調(diào)用了本方法,并且傳入了20,往下執(zhí)行
??????????????????//?4?剛剛調(diào)用了本方法,并且傳入了10,往下執(zhí)行
??????????????????//?5?剛剛調(diào)用了本方法,并且傳入了0,往下執(zhí)行
?????????????????
?????if(n?>?0)????//步驟?5?的值是?0?,一個數(shù)是不大于自身的,所以?0?不大于?0,不滿足,if當(dāng)中的不執(zhí)行
?????{
?????????int?i?=?getSum(n?-?10)?+?n;?//此處傳入n?-?10,也就是將40傳入,然后調(diào)用本方法,步驟?1
?????????????????????????????????????//執(zhí)行到此說明?n?還是大于0,將40-10傳入調(diào)用本方法,步驟2
??????????????????????????????????????//執(zhí)行到此說明?n?還是大于0,將30-10傳入調(diào)用本方法,步驟3
??????????????????????????????????????//執(zhí)行到此說明?n?還是大于0,將20-10傳入調(diào)用本方法,步驟4
??????????????????????????????????????//執(zhí)行到此說明?n?還是大于0,將10-10傳入調(diào)用本方法,步驟5
??????????????????????????????????????//由于步驟5傳入的值是0,不滿足if判斷,所以沒法在執(zhí)行這里
??????????????????????????????????????
??????????????????????????????????????//接收到步驟?5?所返回的值,執(zhí)行?i?=?0?+?n,此處的?n?為10?,然后執(zhí)行return返回?0+10?結(jié)果給調(diào)用步驟4的方法
??????????????????????????????????????//接收到步驟?4?所返回的值,執(zhí)行?i?=?10?+?n,此處的?n?為20?,然后執(zhí)行return返回?10?+?20?結(jié)果給調(diào)用步驟3的方法
??????????????????????????????????????//接收到步驟?3?所返回的值,執(zhí)行?i?=?30+?n?,?此處的?n?為30,然后執(zhí)行return返回?30?+?30?結(jié)果給調(diào)用步驟2的方法
?????????????????????????????????????//接收到步驟?2?所返回的值,執(zhí)行?i?=?60?+?n?,?此處的?n?為?40,然后執(zhí)行return返回?60?+?40?結(jié)果給調(diào)用步驟1的方法
?????????????????????????????????????//接收到步驟?1?所返回的值,執(zhí)行?i?=?100?+?n?,?此處的?n?為?50,然后執(zhí)行return返回?100?+?50?結(jié)果給main方法
?????????return?i;????????????????????
?????????
?????}
?????return?0;?//返回一個值給剛剛調(diào)用步驟?5?的方法
}

用起來沒覺得的,說起來真亂,我想不到通俗的解釋,如果覺得太亂了就別看了,免得被我誤人子弟。。。


3 回復(fù) 有任何疑惑可以回復(fù)我~
#1

黃鋒 提問者

非常感謝!
2015-07-12 回復(fù) 有任何疑惑可以回復(fù)我~
#2

qq_Guardianship_0

num =(getPeachNumber(n+1)+1)*2; 這個沒看懂
2015-07-18 回復(fù) 有任何疑惑可以回復(fù)我~

好厲害,程序猿我敬你

0 回復(fù) 有任何疑惑可以回復(fù)我~

你說的更加復(fù)雜,不過你學(xué)的很好啊,大神

0 回復(fù) 有任何疑惑可以回復(fù)我~

舉報

0/150
提交
取消

誰能給個詳細(xì)的解釋,真的沒懂

我要回答 關(guān)注問題
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號