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

C語言實作:計算本金利息翻倍所需年數(複利計算)

     編輯:關於C語言

複利計算:本利和翻倍年數

本程式模擬銀行定存複利計算,輸入本金與固定年利率(預設 3.5%),計算經過多少年本利和會超過本金的兩倍(即翻倍)。

問題描述

已知本金 a,年利率 x%(程式固定 0.035),求最少存幾年使得本利和 s >= 2*a。每年結算一次利息,利息計入本金(複利)。

演算法邏輯

  • 變數 begin_money 追蹤年初本金,late_money 追蹤年末本利和。
  • 初始化兩者皆為輸入本金。
  • 迴圈條件 late_money < 2 * money,每年:
    late_money += begin_money * rate(計算利息並加入)
    begin_money = late_money(更新下一年年初本金)
  • 印出每年年末本利和,迴圈結束後印出翻倍所需年數(i-1)。

完整程式碼

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

void star(void);

int main()
{
    int i;
    float money, begin_money, late_money = 0.0;
    float rate = 0.035;

    star();
    printf("\t\t\t歡迎來到樂多多銀行\n");
    printf("我們銀行的利息率為%0.3f.\n\n", rate);
    printf("請輸入您要的存入的錢:");
    scanf("%f", &money);

    begin_money = late_money = money;
    for(i = 1; late_money < 2 * money; i++)
    {
        late_money += begin_money * rate;
        begin_money = late_money;
        printf("第%2d年後,你會有%0.3f元。\n", i, late_money);
    }
    printf("\n%d年後,您就有%0.3f元,此時本、利和翻了一番\n", i-1, late_money);
    printf("\n哈哈, 謝謝您的合作!\nGOOD BYE!\n");
    star();
    return 0;
}

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

執行結果示意

複利翻倍計算執行結果

數學驗證

複利公式:A = P(1+r)^n。令 A = 2P 解得 n = ln(2)/ln(1+r)。
當 r = 0.035 時,n ≈ 20.15,故第 21 年翻倍,與程式輸出一致。

延伸應用

  • 允許使用者輸入自訂利率。
  • 支援月複利、日複利等不同複利頻率。
  • 加入通貨膨脹率計算實質報酬率。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved