本金是10000,利息是0.0252,求经过多少年之后,本息和会翻一番,为什么我的程序不对呢?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+"年本息和将会翻一番");
}
}

解决方案 »

  1.   

    你这样存钱亏死了。
    我记得好像利息是这么算的?
    y++;
    money *=(1+0.0252f);
    sum = money;
      

  2.   

    恩?
    你这个是死循环啊
     while(sum<20000)
            {
                y=y+1;
                newsum = money*(1+lilv);
                sum = newsum;
            }
      

  3.   

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

  4.   

    int y=0;
            float money=10000,sum=0,newsum = 0;
            float lilv=0.0252f;
            while(sum<20000)
            {
                y=y+1;
                newsum = money*(1+lilv);
                money = newsum;//加上这一句代码
                sum = newsum;
            }
            System.out.println("经过"+y+"年本息和将会翻一番");
    逻辑有错误。第二年的本金应该更新为newsum,否则会死循环
      

  5.   

    newsum = money*(1+lilv);
                money = newsum;//加上这一句代码
                sum = newsum;直接money *= (1 + lilv);
    一句搞定了,为啥要写那么多呢
      

  6.   

    哇,经过高手的指点我的小程序居然会变得这么简单,太感谢大家了!!!,绝对给分,哈哈!public class benxihe
    {
    public static void main(String[] args)throws Exception
    {
    int y=0;
    float money=10000;
    float lilv=0.0252f;
    while(money<20000)
    {
    y++;
    money= money*(1+lilv);
    }
    System.out.println("经过"+y+"年本息和将会翻一番");
    }
    }
      

  7.   

    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);
    }}