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

这样写一个循环体就结束了,想不到要用二重循环

public class HelloWorld{

public static void main(String[] args){

    int num = 999999999;

    int count = 0;

    int i;

        for (i=1;i<=num;i=i*10){

            count++;

        }

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

    }

}


提问者:qq_慕村4140769 2021-08-11 14:48

个回答

  • l南i烛n
    2023-07-16 12:08:36

    我觉得这样也行吧,到底有啥区别呢

  • wengyaqiang
    2022-05-03 20:45:44

    没有问题要创造问题,加个给出x位数最大值的功能 😜

    public class HelloWorld{
        public static void main(String[] args){
            int num = 999;
            int count = 0;
            int maxLength = 9; // int最大值2147483647,可计算的值最大不能超过9位数
            if(maxLength > 9 || num < 1) {
                System.out.println("请输入小于10位且大于0的数");
            } else {
                int max = 0;
                int i = 0;
                while (i < maxLength) {
                    max = (max * 10) + 9;
                    while(num <= max && num != 0 ) {
                        count++;
                        num /= 10; 
                    }
                    if (num == 0) {
                        break;
                    }
                    i++;
                }
                System.out.println("它是个" + count + "位的数!");
                System.out.println(count + "位数最大值为" + max);
                
            }
        }
    }


  • 慕瓜8049783
    2021-08-19 11:41:37

    你这样写只适用于这一个例子,嵌套循环是解决大多数类似问题,适用性更广