第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

麻煩大家給解答下這個問題

#include <stdio.h>

int a(int b)

{

? ? if(b==10)

? ? {

? ? ? ? return 1;

? ? }

? ? else

? ? {

? ? ? ? printf("第%d天猴子剩下的桃子數(shù)為%d個\n",b,2*(a(b+1)+1));

? ? ? ? return 2*(a(b+1)+1);

? ? }


}

int main()

{

? ? printf("%d\n",a(1));

}

這樣為什么得不到正確的結(jié)果啊?錯在哪?

正在回答

1 回答

因為你直接表達(dá)式的話就相當(dāng)于用了兩次遞歸,先聲明再用就可以了。

#include <stdio.h>

int a(int b)

{

? ? if(b==10)

? ? {

? ? ? ? return 1;

? ? }

? ? else

? ? {

? ? ? ? int num=2*(a(b+1)+1);

? ? ? ? printf("第%d天猴子剩下的桃子數(shù)為%d個\n",b,num);

? ? ? ? return num;

? ? }


}

int main()

{

? ? printf("%d\n",a(1));

}


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

慕牧羊6158366 提問者

用了兩次遞歸?不好意思,我剛學(xué)C,不懂你說的意思?為什么這樣就遞歸了兩次?。磕隳苌晕⒄f的詳細(xì)些嗎?拜托了
2018-03-23 回復(fù) 有任何疑惑可以回復(fù)我~
#2

冒泡的魚 回復(fù) 慕牧羊6158366 提問者

我感覺他說的直接表達(dá)式是你的return 語句后面, 你的 return 2*(a(b+1)+1); 他的 return num; 因為你直接表達(dá)式的話就相當(dāng)于用了兩次遞歸,先聲明再用就可以了。 你的return后的表達(dá)式,是等于叫系統(tǒng)再算一次遞歸函數(shù)了??墒悄阒耙呀?jīng)算過一次了,所以最好先賦值給num,再return num這樣。
2018-04-06 回復(fù) 有任何疑惑可以回復(fù)我~

舉報

0/150
提交
取消

麻煩大家給解答下這個問題

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

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

幫助反饋 APP下載

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

公眾號

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