OpenJudge NOI 1.5 15:银行利息
生活随笔
收集整理的這篇文章主要介紹了
OpenJudge NOI 1.5 15:银行利息
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
【題目鏈接】
OpenJudge NOI 1.5 15:銀行利息
【題目考點】
1. 循環求冪
- 設變量r初始值為1:int r = 1;
- 循環n次每次循環中輸入變量a,將r的值設為r*a:r *= a;
- 循環結束后,r即為ana^nan
2. 調用乘方函數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
而后解決:求一個數n次冪的問題
【題解代碼】
解法1:循環求冪
#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);//最后只需要輸出整數部分,將浮點型數據強轉為整型即可return 0; }解法2:使用pow()函數
#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));//最后只需要輸出整數部分,將浮點型數據強轉為整型即可return 0; }總結
以上是生活随笔為你收集整理的OpenJudge NOI 1.5 15:银行利息的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 信息奥赛一本通(1231:最小新整数)
- 下一篇: 信息学奥赛一本通 1040:输出绝对值