永发信息网

JAVA新手问题 8+88+888+……前10个和 无报错 但运行不出 求指导错误在哪

答案:3  悬赏:30  手机版
解决时间 2021-01-13 03:58
  • 提问者网友:書生途
  • 2021-01-12 10:06
JAVA新手问题 8+88+888+……前10个和 无报错 但运行不出 求指导错误在哪
最佳答案
  • 五星知识达人网友:蕴藏春秋
  • 2021-01-12 10:22
while(i<=10){
sum=sum+a;
i=i=1;
a=8+10*a;
}

你这个i的值并没有变,一直小于10,相当于无限循环了追问修改了
个位数10个8不应该改是尾数是0么?sum 已经改成long

追答你这个a=8+10*a;有问题,当相当于8+88+808+。。。
全部回答
  • 1楼网友:几近狂妄
  • 2021-01-12 11:27
你这个是死循环,i没有叠加,改为i++或i=i+1追问
修改了

个位数10个8不应该改是尾数是0么?sum 已经改成long追答你看看你的循环次数对吗
  • 2楼网友:动情书生
  • 2021-01-12 11:08
public class A5{
public static void main(String args[]){
int sum=0,a=8,i=1;
while(i<=10){
sum=sum+a;
i=i+1;//改为i+1,i=i=1的话是个死循环
a=8+10*a;
}
System.out.println("sum="+sum);
for(i=1,sum=0,a=8;i<=10;i++){
sum=sum+a;
a=a*10+8;
}
System.out.println("sum="+sum);
}
}
最后建议,sum改为long型,因为循环第11次的话输出结果会出问题
数据走出int 最大值,溢出追问
修改了

个位数10个8不应该改是尾数是0么?sum 已经改成long
追答10个数相加,尾数是0啊,再看下是哪里出问题了
第10次循环a的值88888888溢出出错了
所以把sum,a的类型改为long就好了,其它地方没有错
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯