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