要求1!+2!+...+10!
结果却会出现负数,这是怎么回事?我的程序如下,是否有问题?请帮忙解决了
public class JieCheng
{
public static void main(String args[])
{
long sum0=0;
int sum=1;
int i;
int j;
for(i=0;i<=9;i++)
{
for(j=10-i;j>=1;j--)
{
sum=sum*j;
}
sum0=sum0+sum;
}
System.out.println(sum0);
}
}谢谢帮忙
结果却会出现负数,这是怎么回事?我的程序如下,是否有问题?请帮忙解决了
public class JieCheng
{
public static void main(String args[])
{
long sum0=0;
int sum=1;
int i;
int j;
for(i=0;i<=9;i++)
{
for(j=10-i;j>=1;j--)
{
sum=sum*j;
}
sum0=sum0+sum;
}
System.out.println(sum0);
}
}谢谢帮忙
而10!+9!+...+1!所得出的数值远远小于long整形最大取值
为什么会发生溢出?
不是很明白,谁能告诉我?谢谢了
{
public static void main(String args[])
{
long sum0=0;
long sum=1;
int i;
int j;
for(i=0;i<=9;i++)
{
for(j=10-i;j>=1;j--)
{
sum=sum*j;
}
System.out.println("sum-"+i+":"+sum);
sum0=sum0+sum;
// 清除原来记录
sum = 1;
}
System.out.println(sum0);
}
}
{
public static void main(String args[])
{
long sum0=0;
int sum=1;
int i;
int j;
for(i=0;i<=9;i++)
{
for(j=10-i;j>=1;j--)
{
sum=sum*j;
}
sum0=sum0+sum;
sum = 1;
}
System.out.println(sum0);
}
}
原来我的sum没有消除~