OpenJudge NOI 1.5 15:银行利息
【題目鏈接】
OpenJudge NOI 1.5 15:銀行利息
【題目考點】
1. 循環(huán)求冪
- 設(shè)變量r初始值為1:int r = 1;
- 循環(huán)n次每次循環(huán)中輸入變量a,將r的值設(shè)為r*a:r *= a;
- 循環(huán)結(jié)束后,r即為ana^nan
2. 調(diào)用乘方函數(shù)pow()(存在于<cmath>中)
double pow(double a, double b); 求aba^bab
【解題思路】
已知:符合年利率為rrr,即每年利息為本金的rr%r(即r/100r/100r/100,本金mmm,投資時間yyy年
1年后本息和:m+m?r/100=m(1+r/100)m + m * r / 100 = m(1 + r / 100)m+m?r/100=m(1+r/100)
2年后本息和:m(1+r/100)+m(1+r/100)?(r/100)=m(1+r/100)2m(1 + r / 100) + m(1 + r / 100) * (r / 100) = m(1 + r / 100)^2m(1+r/100)+m(1+r/100)?(r/100)=m(1+r/100)2
3年后本息和:m(1+r/100)2+m(1+r/100)2?(r/100)=m(1+r/100)3m(1 + r / 100)^2 + m(1 + r / 100)^2 * (r / 100) = m(1 + r / 100)^3m(1+r/100)2+m(1+r/100)2?(r/100)=m(1+r/100)3
…
n年后本息和:m(1+r/100)nm(1 + r / 100)^nm(1+r/100)n
而后解決:求一個數(shù)n次冪的問題
【題解代碼】
解法1:循環(huán)求冪
#include<bits/stdc++.h> using namespace std; int main() {double r, m, y;cin>>r>>m>>y;for(int i = 0; i < y; ++i)m *= 1 + r / 100;cout<<int(m);//最后只需要輸出整數(shù)部分,將浮點型數(shù)據(jù)強轉(zhuǎn)為整型即可return 0; }解法2:使用pow()函數(shù)
#include<bits/stdc++.h> using namespace std; int main() {double r, m, y;cin>>r>>m>>y;cout<<int(m * pow(1 + r / 100, y));//最后只需要輸出整數(shù)部分,將浮點型數(shù)據(jù)強轉(zhuǎn)為整型即可return 0; }總結(jié)
以上是生活随笔為你收集整理的OpenJudge NOI 1.5 15:银行利息的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 信息奥赛一本通(1231:最小新整数)
- 下一篇: 信息学奥赛一本通 1040:输出绝对值