问答详情
源自:4-15 编程练习

大家感觉这样如何

if(num/1000000000!=0){

System.out.println("只是一个十位数");

}else if(num/100000000!=0){

System.out.println("这是一个九位数");

}else if(num/10000000!=0){

System.out.println("这是一个8位数");

}else if(num/1000000!=0){

System.out.println("这是一个7位数");

}else if(num/100000!=0){

System.out.println("这是一个6位数");

}else if(num/10000!=0){

System.out.println("这是一个5位数");

}else if(num/1000!=0){

System.out.println("这是一个4位数");

}else if(num/100!=0){

System.out.println("这是一个3位数");

}else if(num/10!=0){

System.out.println("这是一个2位数");

}else{

System.out.println("这是一个1位数");

}


提问者:鸿鹄12 2018-08-01 16:37

个回答

  • Polaroid
    2018-08-01 17:14:38
    已采纳

    1. 如果满足除以较小数得零,那么它除以更大的数也同样得零;

      2.这样程序太过复杂,不太推崇。

  • 慕丝5246683
    2018-08-01 17:17:27

    代码有点长。。。  能精简点

    if (num > 0){
        if(num/1000000000!=1){
            System.out.println("只是一个十位数");
        }else if(num/100000000!=1){
            System.out.println("这是一个九位数");
        }else if(num/10000000!=1){
            System.out.println("这是一个8位数");
        }else if(num/1000000!=1){
            System.out.println("这是一个7位数");
        }else if(num/100000!=1){
            System.out.println("这是一个6位数");
        }else if(num/10000!=1){
            System.out.println("这是一个5位数");
        }else if(num/1000!=1){
            System.out.println("这是一个4位数");
        }else if(num/100!=1){
            System.out.println("这是一个3位数");
        }else if(num/10!=1){
            System.out.println("这是一个2位数");
        }else{
            System.out.println("这是一个1位数");
        }
    }else
            System.out.println("请重新输入,格式为正整数");

    --》  

    Scanner input = new Scanner(System.in);
    
    int number = input.nextInt();
    
    int count = 0;
    
    if (number < 0 || number > 999999)
    
    System.out.println("输入错误");
    
    else {
    
    while (number > 0) {
    
    number = number / 10;
    
    count++;
    
    }
    
    System.out.println("输入的数是" + count + "位数");
    
    }