黑马程序员技术交流社区

标题: 这个题怎么做!求大神 [打印本页]

作者: 杨凯瑞    时间: 2015-11-13 19:52
标题: 这个题怎么做!求大神
小明从银行贷款3万元。约定分24个月,以等额本金方式还款。

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

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

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

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

    请把答案金额四舍五入后,保留两位小数。注意:32.5,一定要写为:32.50
作者: wx_Cr3Z7mRM    时间: 2015-11-13 20:12
同求大神支招
作者: 田浩然    时间: 2015-11-13 20:38
小明在第15个月,应该还款多少,这个让银行去算不就行了
作者: syb012    时间: 2015-11-24 19:51
本帖最后由 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;
        }

        

}





作者: Weidan    时间: 2015-11-28 22:49
大神求测试~~
  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.         }
复制代码





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2