复利率公式

时间:2016-02-13 05:34:59

标签: c++ algorithm formula

这太令人沮丧了。我无法在任何地方找到这个答案,我自己也无法弄明白。这是在大学课堂上的作业。我们应该得到以下结果:

  

10年内,每月存款100美元将增至17793.03美元

如何使用c ++计算?

3 个答案:

答案 0 :(得分:1)

重复存款公式可以作为

应用
M = R * ( (1+r/p)^n-1 )/( (1+r/p) -1) = R * p/r * ( (1+r/p)^n-1 )

M is Maturity value
R is deposit amount
r is rate of interest
p is the number of parts of the year that is used, i.e., p=4 for quarterly and p=12 for monthly, 
n is the number of payments, i.e., the payment schedule lasts n/p years, and then r is the nominal annual interest rate, used in r/p to give the interest rate over each part of the year

工作代码如下:

#include <iostream>
#include <cmath>
using namespace std;
int main() {
    double r = 7.5 / 100;
    int n = 120;
    int p = 12;
    int R = 100;
#if 0
    double result = 0;
    for( int i = 0 ; i < n ; ++i )
    {
        result *= ( 1 + r/p ) ;
        result += R;
    }
#else
    double result = R * (p/r )* ( pow( (1+r/p), n ) - 1 );
#endif
    std::cout<<result;
return 0;
}

答案 1 :(得分:0)

A = P (1 + r/n) ^ nt

这是复合利息每年复合的公式。

A = the future value of the investment/loan, including interest
P --> Principal amount (The starting amount)
r --> rate (%)
n --> the number of times that interest is compounded per year
t --> t = the number of years the money is invested or borrowed for

使用上面的公式并替换值,让计算机完成剩下的工作。 我希望这可以帮助你 。我只是一个初学者。这是我认为我会这样做的方式。

<强> 修改

很抱歉,我之前提到的公式对于这样的问题是不正确的。 这是正确的公式: -

PMT * (((1 + r/n)^nt - 1) / (r/n))

PMT--> Principal amount deposited monthy (100 $)

其余值保持不变。试试这个并将值存储为double。这应该工作。我在codeblocks中试过这个。小心值和括号。

希望这有帮助。

答案 2 :(得分:0)

#include <iomanip>
#include <iostream>

int main()
{
    auto balance = 0.0;
    for (auto i = 0; i < 120; ++i)
        balance = balance * (1 + 0.075/12) + 100;
    std::cout << std::setprecision(7) << balance << '\n';
}