亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

為什么這個地方的return 1 去掉,結果也對?

#include <stdio.h>

int getPeachNumber(n)

{

? ? int num;? ? //定義所剩桃子數

? ? if(n==10)

? ? {

? ? ? ?num=1;

????????(return 1;)? ? ? ? ? ? ? ? ?//為什么這個地方的return 1 去掉,結果也對?

? ? ? }?

? ? else

? ? {

? ? ? ? num = (getPeachNumber(n+1)+1)*2;? ?//這里是不應該用遞歸呢?

? ? ? ? printf("第%d天所剩桃子%d個\n", n, num); //天數,所剩桃子個數

? ? }

? ? return num;

}

int main()

{

? ? int num = getPeachNumber(1);

? ? printf("猴子第一天摘了:%d個桃子。\n", num);

? ? return 0;

}


正在回答

4 回答

return 1和上句的num=1重復了啊,因為第10天只剩下一個桃子了,再吃就沒有了,所以這里num=1或者return 1均為結束遞歸的條件,只要一個就可以了

1 回復 有任何疑惑可以回復我~
#1

小白一個求大神帶 提問者

如果沒有return 1那getPeachNumber(10)又怎么能有值呢,僅僅num=1應該是不會給getPeachNumber(10)賦值吧。
2019-02-27 回復 有任何疑惑可以回復我~
#2

sudoRam

再吃就沒有了,神解
2019-03-27 回復 有任何疑惑可以回復我~
#3

L_Ab 回復 sudoRam

還能吃半個 ,
2019-04-04 回復 有任何疑惑可以回復我~

不是 num = 1;

? ? ? return 1;

都有的么?


0 回復 有任何疑惑可以回復我~

其實實際上是這樣寫的

int getPeachNumber(n)

{

? ? int num;? ? //定義所剩桃子數

? ? if(n==10)

? ? {

? ? ? ? num = 1;? ?

? ? ? ? printf("第%d天所剩桃子%d個\n",n,num);

? ? }?

? ? else

? ? {

? ? ? ? num = (getPeachNumber(n+1)+1)*2;? ?//這里是不應該用遞歸呢?

? ? ? ? printf("第%d天所剩桃子%d個\n",n,num); //天數,所剩桃子個數

? ? }

? ? return num;

}

這樣更符合單一出口的原則,答案是簡化了

0 回復 有任何疑惑可以回復我~

應該用return 1;只用num=1;結果是不對的。

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

為什么這個地方的return 1 去掉,結果也對?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號