承接前一題「問題五十」,原本假設這位軟體工程師完全沒有理財觀念,薪水全放家裡不生息。現實總比極端假設合理些——至少會把錢存銀行吃利息。本題將條件改為「每年薪資存入銀行一年期定期,年利率 3.5%」,房價年漲幅 10%,初始房價 187 萬、年薪 40 萬,請問幾年能買得起房?
這是一個典型的「複利對抗」問題:
Pₙ = Pₙ₋₁ × (1 + 0.10)Sₙ = Sₙ₋₁ × (1 + 0.035) + 40Sₙ ≥ Pₙ程式碼採用 while 迴圈逐年推演,計數器 i 即為所需年數。
#include <stdio.h>
int main() {
int i = 0; // 年數計數器
float salary = 40; // 年薪(萬)
float begin_value = 187; // 初始房價(萬)
float rate = 0.10; // 房價年漲幅 10%
float rateofbank = 0.035; // 銀行年利率 3.5%
float late_value; // 當年房價
float sum_money = 0; // 當年存款本息
// 第一年結束時的初始值
late_value = begin_value * (1 + rate);
sum_money = salary * (1 + rateofbank);
while (sum_money < late_value) {
i++;
late_value *= (1 + rate); // 房價漲價
sum_money = sum_money * (1 + rateofbank) + salary; // 存款增長 + 新薪資
}
printf("嘻嘻,得經過 %d 年後,軟體工程師可以買到房子!\n", i);
return 0;
}

程式輸出年數後,我們可以進一步試算:若薪資成長、利率變動、或改為投資報酬率 5%~7%,年數會大幅縮短。這也提醒我們:單靠定期存款對抗高房價漲幅,時間成本極高;早期規劃資產配置才是關鍵。
歡迎在留言分享你的試算結果或改良版代碼!