为了账号安全,请及时绑定邮箱和手机立即绑定

怎么就警告除零错误了,就是用num除不同位数最小的数,不等于零就退出。求大神指点

public class HelloWorld{

public static void main(String[] args){

int num = 999;

int count = 0;


  for(int i=9;i>0;i--){

      

    int j=1;

    while(j<=i){

        count*=10;

        j++;

    }

    if(num/count!=0){

        System.out.println("它是个"+i+"位的数!");

        break;

     }

    

  }


}

}


正在回答

2 回答

public class HelloWorld{
public static void main(String[] args){
int num = 999;
int count;

  for(int i=9;i>0;i--){
      
    int j=1;count=1;
    while(j<i){
        count*=10;
        j++;
    }
    //System.out.println(j+" "+count);
    if(num/count!=0){
        System.out.println("它是个"+i+"位的数!");
        break;
     }
    
  }

}
}

这个就对了,谢谢大家!

0 回复 有任何疑惑可以回复我~

你自己说的很清楚了  除0错误了... 你代码写的有点混乱 没看出你的用意  但是看你代码中 if(num/count!=0) 这里很明显有问题...应该就是这里除0了

对了你count=0,然后 count*=10; count一直都是0,然后被除 当然抛出异常了

0 回复 有任何疑惑可以回复我~
#1

大紫菜 提问者

是的。可count换成1,也是这样···
2015-10-07 回复 有任何疑惑可以回复我~
#2

大紫菜 提问者

代码就是num除十的九次方八次方七次方直到10,什么时候结果不为零就break
2015-10-07 回复 有任何疑惑可以回复我~
#3

MCSTrevor

我想请教一下这个程序里面,count和num之间的逻辑关系是什么,count是数位数吗?
2015-10-07 回复 有任何疑惑可以回复我~
#4

天启之魂 回复 MCSTrevor

这个题的思想就是将num除以10,取整后如果不为0,说明num至少是两位数,所以count++一次(count初始化为1),再循环不为0,继续count++ 直至num为0, 这时的count的值就可以代表num的位数
2015-10-07 回复 有任何疑惑可以回复我~
#5

大紫菜 提问者 回复 MCSTrevor

count是不同数位的最小数,比如,四位的最小数就是十的三次方,count就是1000
2015-10-08 回复 有任何疑惑可以回复我~
查看2条回复

举报

0/150
提交
取消

怎么就警告除零错误了,就是用num除不同位数最小的数,不等于零就退出。求大神指点

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信