【C#】 迴圈小練習_ 每月領款,期初存款問題

期初存款問題。

假如父親為兒子準備了四年大學的生活費,每個月可以提領1000元,請問期初,父親要準備多少錢存入銀行?

這是一個典型的遞推問題,主要在分析存錢與提錢的過程。
利用逆推的方式,4年共48個月,每個月娶1000,也就是最後一個月連本帶利應該剛好剩下1000。

第47期  就等同 1000 + 第48個月的錢 / ( 1 + 利率 / 12 個月)
第46期  就等同 1000 + 第47個月的錢 / ( 1 + 利率 / 12 個月)
遞推公式 : N-1期 = 1000 + N期 / ( 1 + 利率 / 12 )  
 

  class Program
    {
        static void Main(string[] args)
        {
            //存錢問題,固定領出金額,問期初要存入多少錢
            double rate = 0.00;
            int mon = 48;

            Console.Write("請輸入利率:");
            rate = Convert.ToDouble(Console.ReadLine());
            Console.WriteLine("輸入利率為:{0}", rate);

            //定義一個長度48的陣列,用來裝每個月月初剩餘的金額
            double[] money = new double[mon];
            money[mon - 1] = 1000;

            Console.WriteLine("48個月的期初剩餘款:{0}", Math.Round(money[47],2).ToString());

            for (int i = mon - 1; i > 0; i--)
            {
                money[i - 1] = 1000 + money[i] / (1 + rate / 12);
                Console.WriteLine("{0}個月的期初剩餘款:{1}", i, Math.Round(money[i - 1],2).ToString());
            }
            Console.WriteLine("\n最初要存入:{0} 元",Math.Round(money[0],2).ToString());

            Console.ReadLine();
        }
    }

 

水滴可成涓流,涓流可成湖泊大海。
汲取累積知識,將知識堆積成常識;將常識探究成學識;將學識簡化為知識;授人自省。