大家帮下忙,看下这个程序!
觉得没问题啊,怎么执行不出来,求高手够指点!本人刚学javaclass A
{
public int i=2;
public int j=1;
public int sum=2;
public int m;
public int n;
public void f()
{
for(m=1;m<=50;m++)
{
i=i+j;
j=i-j;
n=i/j;
sum=sum+n;
}
}
public void show()
{
System.out.printf("%d\n",sum);
}
}
class F
{
public static void main(String[] args)
{
A aa=new A();
aa.f();
aa.show();
}
}
[ 本帖最后由 pingweiqiang 于 2010-10-26 22:57 编辑 ]
----------------解决方案--------------------------------------------------------
for(m=1;m<=50;m++)
{
i=i+j;
j=i;
n=i/j;
sum=sum+n;
}
}
这里的n=i/j
写错了应该是 n=(int)(i/(j*1.0));
----------------解决方案--------------------------------------------------------
int型的值范围是 -2147483648到2147483648
你那循环50次int型的i,j早就越界了所以抛异常.
你可以把int型转换成long就可以了
----------------解决方案--------------------------------------------------------
额,我这貌似有问题,再想想!
----------------解决方案--------------------------------------------------------
这样的错误,咋回事啊?
----------------解决方案--------------------------------------------------------
知道了,这个终于执行出来了!呵呵,谢谢!
class A
{
public long i=2;
public long j=1;
public float sum=2f;
public long m;
public float n;
public void f()
{
for(m=1;m<=50;m++)
{
i=i+j;
j=i-j;
n=(float)(i/(j*1.0));
sum=sum+n;
}
}
public void show()
{
System.out.printf("%f\n",sum);
}
}
class F
{
public static void main(String[] args)
{
A aa=new A();
aa.f();
aa.show();
}
}
----------------解决方案--------------------------------------------------------
努力哈!我还在C的路上。
总之 ,加油。
----------------解决方案--------------------------------------------------------