標題: 還款計算java
銀行貸款的等額本息還款方法是: 每個月還固定的金額,在約定的期數內正好還完(最後一個月可能會有微小的零頭出入)。ios
好比說小明在銀行貸款1萬元。貸款年化利率爲5%,貸款期限爲24個月。 則銀行會在每一個月進行結算: 結算方法是:計算本金在本月產生的利息: 本金 x (年利率/12) 則本月本金結餘爲:本金 + 利息 - 每個月固定還款額 計算結果會四捨五入到「分」。c++
經計算,此種狀況下,固定還款額應爲:438.71函數
這樣,第一月結算時的本金餘額是: 9602.96 第二個月結算: 9204.26 第三個月結算: 8803.9 .... 最後一個月若是仍按固定額還款,則最後仍有0.11元的本金餘額, 但若是調整固定還款額爲438.72, 則最後一個月會多還了銀行0.14元。 銀行會選擇最後本金結算絕對值最小的狀況來設定 每個月的固定還款額度。 若是有兩種狀況最後本金絕對值相同,則選擇還款較少的那個方案。spa
本題的任務是已知年化利率,還款期數,求每個月的固定還款額度。操作系統
假設小明貸款爲1萬元,即:初始本金=1萬元。 年化利率的單位是百分之多少。 期數的單位爲多少個月。調試
輸入爲2行, 第一行爲一個小數r,表示年率是百分之幾。(0<r<30) 第二行爲一個整數n,表示還款期限。 (6<=n<=120)code
要求輸出爲一個整數,表示每個月還款額(單位是:分)blog
例如: 輸入: 4.01 24內存
程序應該輸出: 43429
再好比: 輸入: 6.85 36
程序應該輸出: 30809
資源約定: 峯值內存消耗(含虛擬機) < 256M CPU消耗 < 1000ms
請嚴格按要求輸出,不要多此一舉地打印相似:「請您輸入...」 的多餘內容。
全部代碼放在同一個源文件中,調試經過後,拷貝提交該源碼。 java選手注意:不要使用package語句。不要使用jdk1.7及以上版本的特性。 java選手注意:主類的名字必須是:Main,不然按無效代碼處理。
c/c++選手注意: main函數須要返回0 c/c++選手注意: 只使用ANSI C/ANSI C++ 標準,不要調用依賴於編譯環境或操做系統的特殊函數。 c/c++選手注意: 全部依賴的函數必須明確地在源文件中 #include <xxx>, 不能經過工程設置而省略經常使用頭文件。
提交程序時,注意選擇所指望的語言類型和編譯器類型。
1 #include<iostream> 2 #include<cmath> 3 using namespace std; 4 int main(){ 5 double x=10000,r;// r 是 年利率 6 int n;// 還款期 7 cin>>r>>n; 8 r=r*0.01/12;//每個月的利息 9 double start=x/n; 10 double sum=x,last=99999999; 11 while(start){ 12 sum=x; 13 for(int i=1;i<=n;i++) 14 sum=sum+sum*r-start; 15 if(abs(last)<abs(sum)){ 16 int zz=(double)((start-0.01)*100+0.5); 17 cout<<zz; 18 break; 19 } 20 last=sum; 21 start=start+0.01; 22 } 23 return 0; 24 }