首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C語言解決猴子吃桃問題:逆向推導經典遞迴

     編輯:關於C語言

問題描述

猴子第一天摘若干桃子,當天吃掉一半又多吃一個;之後每天同樣吃法。到第 10 天早上只剩 1 個。求第一天共摘多少?

逆向思維

設第 n 天早上剩 x 個,則第 n-1 天早上有 2*(x+1) 個。從第 10 天倒推至第 1 天。

完整程式碼

#include 

int main() {
    int sum = 1;          // 第 10 天早上剩 1 個
    for (int i = 0; i < 9; i++) {   // 往前推 9 天
        sum = 2 * sum + 2;
    }
    printf("%d\n", sum);
    return 0;
}

逐日推導表

天數(倒數)早上剩餘公式
101初始
942*(1+1)
8102*(4+1)
7222*(10+1)
6462*(22+1)
5942*(46+1)
41902*(94+1)
33822*(190+1)
27662*(382+1)
115342*(766+1)

執行結果

1534

第一天共摘 1534 個桃子。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved