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

public class HelloWorld{ public static void main(String[] args){ int num =999; int count = 1; do{ count=count+1; num/=10; }while(num/10!=0); System.out.println("它是个"+count+"位的数!"); } }

作者考虑了没?

提问者:慕粉3192801 2016-04-15 22:08

个回答

  • ritmoon_0001
    2016-04-15 23:13:58
    已采纳

    这个有点小问题 count的值直接设为1的话,当num为个位数的时候,结果的是2位数。 结构有点小问题。

  • 慕运维8283692
    2016-04-16 00:58:29

    count从0开始

  • 慕运维8283692
    2016-04-16 00:57:19

    while(num!=0)应该就ok了

  • 木头人的漂流瓶
    2016-04-16 00:02:40

    do...while语句会先执行一步,因此如楼上所说,num是个位会有点小问题,建议使用while,也可双层FOR循环

    eg:

       

    public class HelloWorld{

            public static void main (String[] agrs){

            int num=999878;

            int count=0;

            for(int j=10,i=1,x=1;num>i;i=i*10,x=x+1,j=j*10){

                if(num<j){

                    count=x;

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

                    break;

                            }

                }

        }

    }