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

来源:4-15 编程练习

qq_尚晨_03700611

2016-12-28 13:47

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么?



写回答 关注

1回答

  • 木牙虎
    2016-12-28 14:31:44

    楼主用的算法有问题,没看明白。为什么用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+"位的数!");



Java入门第一季(IDEA工具)升级版

0基础萌新入门第一课,从Java环境搭建、工具使用、基础语法开始

1165183 学习 · 17581 问题

查看课程

相似问题