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

请问这个题怎么做,搞不清思路,要用多重循环做。判断一个数(小于10位)的位数。输入999,则输出 “它是个3位的数!”

判断一个数(小于10位)的位数。
输入999,则输出 “它是个3位的数!”
598dca3900012f4605400960.jpg

正在回答

3 回答

while(num !=0){
    count ++;
    num/=10;
}

解题思路:

1、判断数字的位数,通常是跟10有关,就像10是2位,100是3位,1000是4位,即数字后面的0总比位数少一位

2、如上代码,num=999,不等于0,进入循环后,count先加1,num/=10是num=num/10;就是在当前num的值除以10后的除数重新赋值给num,此时num=99,再次进入循环,count+1,num=9,第三次循环后9/10=0,num=0就结束循环,count=3

2 回复 有任何疑惑可以回复我~
#1

生亦何欢死亦何苦 提问者

嗯嗯,我明白了,谢谢
2017-08-14 回复 有任何疑惑可以回复我~
#2

荒旅

我有个问题。。num赋值为999 第一次循环不是99.9吗。。他不会提示3位吗
2017-08-21 回复 有任何疑惑可以回复我~
#3

月下心语 回复 荒旅

System.out.println("它是个"+count+"位的数!"); count就是计算了几次
2017-08-21 回复 有任何疑惑可以回复我~
#4

荒旅 回复 月下心语

999可以除以10三次 所以三位是这样吗
2017-08-22 回复 有任何疑惑可以回复我~
#5

月下心语 回复 荒旅

就是这个意思
2017-08-22 回复 有任何疑惑可以回复我~
#6

荒旅 回复 月下心语

谢谢你的解答
2017-08-22 回复 有任何疑惑可以回复我~
查看3条回复

public class HelloWorld{

public static void main(String[] args){

int num = 999;

int count = 0;

int i;


for(i=10;num%i!=0;)

{

    num=num/10;

    count++;

}


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

}

}


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

生亦何欢死亦何苦 提问者

谢谢谢谢
2017-08-14 回复 有任何疑惑可以回复我~
if(0<num&&num<=999999999){ //判断是否在范围内
    while(num!=0){   /*建立一个循环体
        count++;      *使num每次除以10,并记录次数
        num/=10;      *结束条件是num=0(即上一步9/10=0)
    }                 */
    System.out.println("它是个"+count+"位的数!");
}else{
    System.out.println("输入错误!");
}


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

生亦何欢死亦何苦 提问者

谢谢谢
2017-08-14 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

请问这个题怎么做,搞不清思路,要用多重循环做。判断一个数(小于10位)的位数。输入999,则输出 “它是个3位的数!”

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