本金是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+"年本息和将会翻一番");
}
}
{
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+"年本息和将会翻一番");
}
}
我记得好像利息是这么算的?
y++;
money *=(1+0.0252f);
sum = money;
你这个是死循环啊
while(sum<20000)
{
y=y+1;
newsum = money*(1+lilv);
sum = newsum;
}
sum永远是 10252
把sum用money替换就行了
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,否则会死循环
money = newsum;//加上这一句代码
sum = newsum;直接money *= (1 + lilv);
一句搞定了,为啥要写那么多呢
{
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+"年本息和将会翻一番");
}
}
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);
}}