一、简介
今天我想给大家介绍如何实现算出数的位数。
何为数的位数呢?我们都知道。一个正整数都有个十百千万等等位数,这些位数的个数就是数的位数。通俗来讲,数的位数就是一个数有几个数字。
例如:641就是3位数,125678就是6位数。
二、思路
如何算出位数呢?
思路1
中学里我们肯定都学过log函数,当log以10为底的话,即为lg,要算的位数为lg要求数为底的对数+1。用函数可以轻松算出。
思路2
当然,我们可以不用函数自己进行计算。例如数654321,我们将它每次整除10,算出的整除次数就是位数了。我们可以另外设一个变量,初始值为0,每循环一次进行加一操作。最后打印出来即为位数
三、代码实现
思路1
#include<stdio.h>
#include<math.h> //注意包含头文件
int main()
{
int n,i;
scanf("%d", &n);
i = (int)log10(n) + 1; //函数计算
printf("%d", i);
return 0;
}
思路2
#include<stdio.h>
int main()
{
int k,c=0;
scanf("%d",&k);
while(k) //循环算位法
{
c++;
k=k/10;
}
printf("%d\n",c);
return 0;
}
四、总结
注意:由于int 存在范围,该算法不能算超过十位的数字
对于两种方法,第一种运用函数代码行数少,更易想到。这种函数叫做标准函数。
另外,假如对是否要+1存在疑问,我们可以先行运算一下试试看。
五、标准函数
代码中的log10就是标准函数,也叫库函数。
为了不再重复实现常见的代码,让程序员提升开发效率,C语言标准规定了一组函数,这些函数就叫做标准函数。一个系列的库函数一般会声明在同一个头文件中,所以大家在使用时要注意包含头文件。(如代码中的math.h)
标准函数可供参考链接:https://zh.cppreference.com
路漫漫其修远兮,吾将上下而求索