求满足1!+2!+3!…+n!<=9999的最大整数n,,下面我的这个问题出在哪了呢??

ublic class Example3_3_9 {
public static void main(String[] args) {
long sum=0,sum1=1;
int i,j;
long n = 0;
for( j=1;sum <= 9999;j++)
{
for( i=1;i<=j;i++){
sum1=j*i;
sum1=1;
if((n = n + sum1) <= 9999){
sum = sum + sum1;
}
else{
j --;
System.out.println(j);
break;
}

}

}

}

}

你这里面有几处问题
1、Sum每次循环没有归零,应该在内层循环和判断之后有个Sum=0
2、内层循环只负责算阶乘,应该是sum1*=i
3、sum1=1是什么鬼?复位不是在这里

简而言之,应该写成
for( j=1;sum <= 9999;j++)
{
for( i=1;i<=j;i++) sum1*=i;
n = n + sum1;
if(n > 9999)
{
System.out.println(j);
break;

}
sum1 = 1;
sum = 0;
}
温馨提示:答案为网友推荐,仅供参考
相似回答