A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 杨凯瑞 中级黑马   /  2015-11-13 19:52  /  596 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

小明从银行贷款3万元。约定分24个月,以等额本金方式还款。

    这种还款方式就是把贷款额度等分到24个月。每个月除了要还固定的本金外,还要还贷款余额在一个月中产生的利息。

    假设月利率是:0.005,即:千分之五。那么,

    第一个月,小明要还本金 1250, 还要还利息:30000 * 0.005,总计 1400
    第二个月,本金仍然要还 1250, 但利息为:(30000-1250) * 0.005 总计 1393.75

    请问:小明在第15个月,应该还款多少(本金和利息的总和)?

    请把答案金额四舍五入后,保留两位小数。注意:32.5,一定要写为:32.50

5 个回复

倒序浏览
同求大神支招
回复 使用道具 举报
小明在第15个月,应该还款多少,这个让银行去算不就行了
回复 使用道具 举报
本帖最后由 syb012 于 2015-11-24 19:53 编辑

写好了,求大神帮我检查一下


public class Text {

        public static void main(String[] args) {
               
                double sub=method(30000,15);
                String ss = extracted(sub);
                System.out.println("小明在第15个月,应该还款"+ss+"元");

        }
        
        //把还款金额转换成需要的格式
        private static String extracted(double sub) {
                sub=Math.rint(sub*100);
                int i=(int) sub;
                String string =Integer.toString(i);
                String ss=string.replaceAll("(\\d+)(\\d\\d)", "$1\\.$2");
                return ss;
        }

        //算出第n月要还款的金额
        private static double method(double sum, int n) {
                double m=sum/24;
               
                double h=0;
                for(int i=1;i<=n;i++){
                        if(sum<=0)
                                return 0;
                        else if(sum<m)
                                return sum+0.005*m;
                        else                                                
                                h=m+0.005*sum;
                                sum=sum-m;                        
                }
               
                return h;
        }

        

}




回复 使用道具 举报
大神求测试~~
  1. public static void main(String[] args) {
  2.                 for(int i=1;i<25;i++){
  3.                         show(i);
  4.                 }
  5.         }
  6.        
  7.         public static void show(int month){
  8.                 BigDecimal  bd = new BigDecimal ((30000-1250*(month-1))*0.005+1250);
  9.                 DecimalFormat df = new DecimalFormat("#.00");   
  10.         System.out.println("第"+month+"月应还本金和利息共"+df.format(bd));   
  11.         }
复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马