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

为毛他打印出来是这个鬼样子?

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

    for(int i = 0;i<10;i++){      
            if(num % (10^i)==0){
                
               System.out.println("它是个"+i+"位的数!");
            }
        }
    }
}


它是个3位的数!
它是个9位的数!



不应该是 他是个0位数!他是个3位数!4,5,6,7,8,9么?



正在回答

2 回答

楼主用的算法有问题,没看明白。为什么用for循环,i<10中这个10从哪儿来的?不如用do...while来得快,不管num是几位数,先除以10,次数加1,然后判断商是否大于1,如果大于1继续除以10,直到num变成个位数。此时count就是原来数的位数。

int count=0  ;//保存位数,初始值0

do {num=num/10;

    count++;    

}while(num>1);

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



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

举报

0/150
提交
取消

为毛他打印出来是这个鬼样子?

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