1. java 等額本息還款。這個應該怎麼算
import java.math.BigDecimal;  
  
/** 
 * 銀行還款計算 
 * @author cuiran 
 * @version TODO 
 */  
public class BankRefund {  
  
    /** 
     *  
     * 等額本金還款法【利息少,但前期還的多】 
     * @param totalMoeny 貸款總額 
     * @param rate  貸款商業利率 
     * @param year  貸款年限 
     */  
    public static void principal(int totalMoney,double rate,int year){  
        /** 
         * 每月本金 
         */  
        int totalMonth=year*12;  
        double monthPri=totalMoney/totalMonth;  
        /** 
         * 獲取月利率 
         */  
        double monRate=resMonthRate(rate);  
          
        BigDecimal   b   =   new   BigDecimal(monRate);    
        monRate   =   b.setScale(6,   BigDecimal.ROUND_HALF_UP).doubleValue();    
        for(int i=1;i<=totalMonth;i++){  
            double monthRes=monthPri+(totalMoney-monthPri*(i-1))*monRate;  
            BigDecimal   b1   =   new   BigDecimal(monthRes);    
            monthRes   =   b1.setScale(2,   BigDecimal.ROUND_HALF_UP).doubleValue();    
            System.out.println("第"+i+"月,還款為:"+monthRes);  
        }  
    }  
    /** 
     *  
     * 等額本息還款【利息多】 
     * @param totalMoeny 貸款總額 
     * @param rate  貸款商業利率 
     * @param year  貸款年限 
     */  
    public static void interest(int totalMoney,double rate,int year){  
        /** 
         * 獲取月利率 
         */  
        double monRate=resMonthRate(rate);  
        /** 
         * 月還款本息 
         */  
          
        double monInterest=totalMoney*monRate*Math.pow((1+monRate),year*12)/(Math.pow((1+monRate),year*12)-1);  
        BigDecimal   b   =   new   BigDecimal(monInterest);    
           monInterest   =   b.setScale(2,   BigDecimal.ROUND_HALF_UP).doubleValue();    
        System.out.println("月供本息和:"+monInterest);  
          
    }  
    /** 
     *  
     * 轉換為月利率 
     * @param rate 
     * @return 
     */  
    public static double resMonthRate(double rate){  
          
        return rate/12;  
    }  
    /** 
     * TODO 
     * @param args 
     */  
    public static void main(String[] args) {  
          
        // TODO Auto-generated method stub  
        int totalMoney=430000;  
        double rate=0.0655;  
        int year=20;  
//      BankRefund.interest(totalMoney, rate, year);  
        BankRefund.principal(totalMoney, rate, year);  
          
    }  
  
}
2. java編寫程序:要求用戶輸入貸款的年利率,總金額和年數,程序計算月支付金額和
你也不說計算公式,不知道怎麼計算,我去網上找了一個月支付款的計算公式,不知道和你題目的要求是否一樣,如果不一樣你就改下公式就行。
java代碼如下:
publicclassLoan{
	publicstaticvoidmain(String[]args){
		doublerate;//利率
		intyear;//年數
		doublemoney;//貸款總額
		doublemonthpay;//月付款
		
		Scannersc=newScanner(System.in);
		System.out.println("輸入月利率:");
		rate=sc.nextDouble();
		System.out.println("輸入年數:");
		year=sc.nextInt();
		System.out.println("輸入貸款總額:");
		money=sc.nextDouble();
		
		//計算月付款
		monthpay=(money*rate)/Math.abs(1-(1/(1+rate)*year*12));
		System.out.println("每月應該還貸款:"+monthpay);
	}
}