如果我们得到一个整数,比如:123,要获取这个整数有几位,该如何使用C语言进行计算呢?
这个题目,牵扯到一点算法,要稍微思考一下。
我说一下我的思路:
在大的思路上,我是使用while循环。
需要一个计数器,也就是一个计数的变量,这个变量的初始值,是0 , 每当计算一次,增加一位的时候,这个变量需要加1
在每一次的循环步骤之内,让被计算位数的整数,除以10,直到商为0为止
使用代码表示,如下图所示:
在上图代码中,第8行到第12行,就是这个算法的核心代码。
上面代码中,变量num是将要被计算位数的整数,变量bit是计数器。计数器初始值为0
就拿上面这个程序来说,num第一次除以10的时候,商为12,因为是整数相除,所以,商仍然是整数。在数学中,123除以10等于12.3,但是在C语言中,两个整数相除的时候,小数点被舍去。
然后变量num一直除以10,直到除到商为0
在第8行的小括号中,商为0的时候,循环不执行了。所以,while里面的语句,就不执行了。
每次循环时,变量bit都加1,最后,当跳出while循环的时候,bit最后的值,就是变量num的位数了。
零基础小白到大神之路,欢迎加群 四八七八七五零零四,群里有免费C++课程,还有大量干货哦
领取专属 10元无门槛券
私享最新 技术干货