日期:2014-05-20  浏览次数:20847 次

我想实现经过n年之后本息和是原来的金额的2倍,可是我的程序无法的到正确的结果,求指教!
本金是10000,利息是0.0252,求经过多少年之后,本息和会翻一番,为什么我的程序不对呢?
Java code

public class benxihe 
{
    public static void main(String[] args)throws Exception
    {
        int y=0;
        float money=10000,sum=0,newsum = 0;
        float lilv=0.0252f;
        while(sum<20000)
        {
            y=y+1;
            newsum = money*(1+lilv);
            sum = newsum;
        }
        System.out.println("经过"+y+"年本息和将会翻一番");
    }
}



------解决方案--------------------
因为你的money没有变啊,算n次,newsum = 10000*(1+0.0252);然后sum = newsum;
sum永远是 10252
把sum用money替换就行了

------解决方案--------------------
newsum = money*(1+lilv);
money = newsum;//加上这一句代码
sum = newsum;

直接

money *= (1 + lilv);
一句搞定了,为啥要写那么多呢
------解决方案--------------------
探讨
newsum = money*(1+lilv);
money = newsum;//加上这一句代码
sum = newsum;

直接

money *= (1 + lilv);
一句搞定了,为啥要写那么多呢

------解决方案--------------------
public class TestMoney {
public static void main(String []args){
double Money=10000;
int year=0;
while(Money<20000)
{
Money=Money+Money*0.0252;
year++;
}
System.out.println(year);
System.out.println(Money);
}

}