假設北京有一套房子,現價 200 萬。房價每年上漲 10%(漲幅以 200 萬為基數計算,即單利非複利)。一位軟體工程師年薪固定 40 萬,不貸款、不漲薪、無其他收入,且「不吃不喝不消費」全存。請問他需要幾年才能湊齊首付?
這是一道典型的「收入線性增長 vs 價格線性增長」數學建模題,用 C 語言實作極適合初學者理解迴圈與條件判斷。
設 i 為年數,工程師累積儲蓄 = 40 * i(萬);房價 = 200 + 200 * 0.1 * i。當儲蓄 ≥ 房價時即可買房,即解不等式:
40i ≥ 200 + 20i → 20i ≥ 200 → i ≥ 10
程式碼採用 while 迴圈逐年遞增 i,直到條件 salary * i < value + value * rate * i 不再成立。
#include <stdio.h>
int main()
{
int i = 0;
float salary = 40; // 年薪(萬)
float value = 200; // 房價(萬)
float rate = 0.1; // 年漲幅 10%
while (salary * i < value + value * rate * i) // 單利計算房價
{
i++;
}
printf("經過 %d 年後,軟體工程師可以買到房子!\n", i);
return 0;
}
程式輸出:經過 10 年後,軟體工程師可以買到房子!
這個簡單模型揭示了「收入增長跑不贏資產價格上漲」的殘酷現實。若改為複利(房價每年在上一年基礎上漲 10%),所需年數將大幅增加,讀者可嘗試修改程式碼驗證。
