承接「問題五十一」,上一題假設薪資固定 40 萬、只靠銀行利息 3.5% 對抗房價 10% 漲幅。現實中,工程師經驗累積、跳槽漲薪是常態。本題新增條件:薪資年增長 5%,初始房價調整為 200 萬,其餘參數不變,請重新計算所需年數。
關鍵差異在於薪資變成遞迴增長:
Pₙ = Pₙ₋₁ × 1.10Salₙ = Salₙ₋₁ × 1.05Sₙ = Sₙ₋₁ + Salₙ(本題未加入銀行利息,單純累積薪資)迴圈中依序更新薪資、累積存款、房價漲幅,直到存款 ≥ 房價。
#include <stdio.h>
int main() {
int i = 0;
float salary = 40; // 初始年薪
float begin_value = 200; // 初始房價
float rate = 0.10; // 房價漲幅
float rateofsalary = 0.05; // 薪資成長率
float late_value; // 當年房價
float sum_money = 0; // 累積存款
late_value = begin_value * (1 + rate); // 第 1 年底房價
sum_money = salary; // 第 1 年底存款
while (sum_money < late_value) {
i++;
late_value += late_value * rate; // 房價漲價
salary += salary * rateofsalary; // 薪資調漲
sum_money += salary; // 存入新薪資
}
printf("嘻嘻,得經過 %d 年後,軟體工程師可以買到房子!\n", i);
return 0;
}

對比上一題(固定薪資+利息),薪資成長率 5% 雖低於房價漲幅 10%,但因為薪資基數會隨時間放大,實際買房年數會明顯縮短。若再疊加銀行利息或投資報酬,曲線會更陡峭。
rateofsalary 這個參數。試著修改代碼,加入「每年存入銀行再吃利息」或「薪資成長率遞減」情境,觀察年數變化吧!