我感覺這么兩個問題 大家一起幫忙看看
按照答案的編程 ? 最后輸出的結(jié)果
應(yīng)該是這樣的吧:
第一天所剩桃子:
第二天所剩桃子:
........
? ? ? ? 第十天所剩桃子:
2.第一天摘的桃子應(yīng)該是(1534+1)*2吧
按照答案的編程 ? 最后輸出的結(jié)果
應(yīng)該是這樣的吧:
第一天所剩桃子:
第二天所剩桃子:
........
? ? ? ? 第十天所剩桃子:
2.第一天摘的桃子應(yīng)該是(1534+1)*2吧
2020-02-06
舉報
2020-03-07
問題1:如下遞歸函數(shù)執(zhí)行過程圖,答案所給代碼num = (getPeachNumber(n + 1) + 1) * 2;是n+1的形式,故該函數(shù)從主函數(shù)所給實參(這里是1)開始執(zhí)行n+1的運算。遞歸函數(shù)按照123456789的順序引用自身,然后逆序(987654321)執(zhí)行運算過程,因此打印的順序為逆序。如要正序打印,以下為參考代碼:
#include <stdio.h>
int getPeachNumber(int n)
{
int num;
if (n == 0)????//這里是結(jié)束條件,不打印該值,而是打印后面一個值(此處為1)
num = 3070;????//這里需要提前計算出結(jié)果。當(dāng)然也有代碼不需要自己提前計算出結(jié)果,奈何我學(xué)識淺薄,只能想到這么個辦法
else
{
num = (getPeachNumber(n - 1) - 1) / 2;????//這里進(jìn)行實參的n-1運算,即按照987654321順序的運算
printf("第%d天所剩桃子%d個\n", n, num);
}
return num;
}
int main()
{
getPeachNumber(10);????//如果到第九天停止,則此處實參需改為9
printf("猴子第一天摘了:%d個桃子。\n", getPeachNumber(0));
printf("猴子第一天剩了:%d個桃子。\n", getPeachNumber(1));????//這里調(diào)用了1,會多輸出一個第一天
return 0;
}
問題2:看了上面的內(nèi)容,想必你已經(jīng)知道了吧?
2020-02-28
程序應(yīng)該改成?printf("猴子第一天摘了:%d個桃子。\n", (num+1)*2);才對
2020-02-24
同求,第一天剩下的桃子應(yīng)該是1534,那第一天摘的桃子就是(1534+1)*2啊? ?
求明白人講解
2020-02-07
先進(jìn)后出 進(jìn)123456789出987654321 我不確定僅供參考