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

搞不懂3位数是怎么算出来的!num/10;count++;怎么联系起来的?

        if(num >= 0 && num <=999999999){

            while(num != 0){

                count++;

                num/=10;

            }

外层循环条件是“值大于等于0小于等于99999999”,内层循环条件是“值不等于0”. count每循环一次自增“1”。如果num值为100,num/=10结果是10,count自增100次,count值不是应该是100吗?

正在回答

2 回答

你可以这样想定义num是一个整型常量,那他num/10就一直除的它小于零为止,在这个循环中一直循环count次,

因为count++   "自增循环”一直加一次,3位数除一次是两位 再除一次是一位  再除一次是小数  不再是整数  就结束了循环,也就是3位数执行了三次操作,也就得出3位数的结果了

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

浮躁3

num/10 无论除几次 也不可能小于零啊。假如除四次 是0.999 那也不会小于零啊
2016-06-30 回复 有任何疑惑可以回复我~
#2

无限大宇宙 回复 浮躁3

在int 上 0.99 直接为 0, 应该说是除到它小于等于零
2016-07-08 回复 有任何疑惑可以回复我~

num/10,就是看这个数能除以10多少次,多少次就是多少位数。比如999=9*10(2)+9*10(1)+9*10(0),如果学过二进制位移计算的话 这个题就更容易理解了

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

举报

0/150
提交
取消

搞不懂3位数是怎么算出来的!num/10;count++;怎么联系起来的?

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