輸出格式: 若任意一項(xiàng)小于或等于零,拋出IllegalArgumentException異常及相應(yīng)描述(Number of years must be positive或Annual interest rate must be positive或Loan amount must be positive);有多項(xiàng)不符合,以不符合最前項(xiàng)為準(zhǔn);
若均符合要求,按照格式輸出總額。
輸入樣例: 在這里給出一組輸入。例如:
1 1 1000
2.0 0 2000
0 0 0
輸出樣例: 在這里給出相應(yīng)的輸出。例如:
1005.425 java.lang.IllegalArgumentException: Number of years must be positive java.lang.IllegalArgumentException: Annual interest rate must be positive
import java.util.Date;import java.util.Scanner;publicclassMain{publicstaticvoidmain(String[] args){Scanner input =newScanner(System.in);while(input.hasNext()){double AIR = input.nextDouble();int NOY = input.nextInt();double LA = input.nextDouble();try{Loan m =newLoan(AIR, NOY, LA);if(AIR<=0)thrownewIllegalArgumentException("Annual interest rate must be positive");elseif(NOY<=0)thrownewIllegalArgumentException("Number of years must be positive");elseif(LA<=0)thrownewIllegalArgumentException("Loan amount must be positive");System.out.printf("%.3f\n",m.getTotalPayment());}catch(Exception ex){System.out.println(ex);}}}}classLoan{privatedouble annualInterestRate;privateint numberOfYear;privatedouble loanAmount;private Date loanDate;publicLoan(){annualInterestRate=2.5;numberOfYear=1;loanAmount=100;this.loanDate=newDate();//沒啥用}publicLoan(double annualInterestRate,int numberOfYear,double loanAmount){this.annualInterestRate = annualInterestRate;this.numberOfYear = numberOfYear;this.loanAmount = loanAmount;}publicdoublegetAnnualInterestRate(){return annualInterestRate;}publicvoidsetAnnualInterestRate(double annualInterestRate){this.annualInterestRate = annualInterestRate;}publicintgetNumberOfYear(){return numberOfYear;}publicvoidsetNumberOfYear(int numberOfYear){this.numberOfYear = numberOfYear;}publicdoublegetLoanAmount(){return loanAmount;}publicvoidsetLoanAmount(double loanAmount){this.loanAmount = loanAmount;}public Date getLoanDate(){return loanDate;}publicvoidsetLoanDate(Date loanDate){this.loanDate = loanDate;}publicdoublegetMonthlyPayment(){double monthRate=annualInterestRate/1200;//注意年利率=月利率/1200;return loanAmount*monthRate/(1-(1/Math.pow(1+monthRate,numberOfYear*12)));}publicdoublegetTotalPayment(){returngetMonthlyPayment()*12*numberOfYear;}}