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

搞不懂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吗?

提问者:一千里西伯利亚寒流 2016-06-19 14:27

个回答

  • Nickhunick
    2016-06-19 14:37:43

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

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

  • qq_人精_03527440
    2016-06-19 14:37:06

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