题解:P13897 [CSPro 28] 现值计算
其实此题很简单,说白了只有一句话:把未来每一年的钱按复利折现到今天,全部相加就是总盈亏。
讲清楚点,就是:
银行利率为 i,意味着:
今天的 1 元,一年后值 1+i 元。
反过来,一年后的 1 元,今天只值 1/(1+i) 元。
同理,k 年后的 x 元,今天值 x/(1+i)^k 元。
思路较为简单,代码如下:
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n;
double i;
cin>>n>>i;
double ans=0.0;//初始化
for (int k = 0; k <= n; ++k)
{
int m;
cin>>m;
ans+=m*pow(1+i,-k);//计算总数
}
cout<<ans;
return 0;
}