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

C語言實作:百萬富翁與陌生人換錢計畫(指數成長展示)

     編輯:關於C語言

指數成長的驚人威力

經典數學故事:陌生人提議每天給富翁 10 萬元(題目說 10 萬但程式用 30 萬),富翁第一天給 0.01 元,之後每天加倍,持續 30 天。程式計算並對比雙方給付金額,展示指數成長遠超線性成長。

問題描述

富翁每天給 300,000 元(程式設定),共 30 天。陌生人第一天給 0.01 元,之後每天翻倍。計算 30 天內雙方累計給付金額並逐日列印對比。

關鍵變數

  • money:陌生人當天需給付金額,初始 0.01,每日 *=2。
  • late_money:陌生人累計給付總額。
  • sum_money:富翁累計給付總額,每日固定 +300,000。

完整程式碼

/* 程式標頭註解 */
#include <stdio.h>

void star(void);

int main()
{
    int i;
    float money, late_money = 0.0, sum_money = 0.0;

    star();
    money = 0.01;

    for(i = 1; i <= 30; i++)
    {
        sum_money += 300000.0;
        late_money += money;
        money *= 2;

        printf("第%2d天後,富翁給的錢為:%10.2f\t", i, late_money);
        printf("陌生人得給的錢為:%11.2f\n", sum_money);
    }
    printf("\n富翁看到結果後,會反悔吧!\n");
    printf("\n哈哈,謝謝您的合作!\n\tGOOD BYE!\n");
    star();
    return 0;
}

void star(void)
{
    int i;
    for(i = 0; i < 60; i++) printf("*");
    printf("\n");
}

執行結果示意

換錢計畫執行結果

數學分析

陌生人第 n 天給付:0.01 * 2^(n-1) 元。
30 天累計:0.01 * (2^30 - 1) ≈ 10,737,418.23 元。
富翁 30 天累計:300,000 * 30 = 9,000,000 元。
第 26 天左右陌生人單日給付即超過富翁每日給付,最終陌生人總給付遠超富翁。

教學意義

  • 直觀展示指數函數增長速度遠超線性函數。
  • 對應現實中的複利效應、病毒傳播、技術摩爾定律等。
  • 可延伸討論 float 精度問題,大數建議改用 double 或 long double。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved