while里面判断num不为0,是不是忽略了0本身也是1位数。。
0是自然数,不是一位数。一个数的最高位不能是0。为什么要这样规定呢?因为若没有这样的规定,0就是一位数,由此可以得出最小的两位数是00,最小的三位数是000,这样的结论显然是不对的。不仅这样,若没有这样的规定,对一个数也就无法确定它是几位数了。例如,15是两位数,“015”就变成了三位数,“0015”就变成了四位数。这样,同一个数我们可以随意称它为几位数,“位数”这一概念的存在也就没有必要了。因此,一个数的最高位不能“0”。
有道理。。囧。。