循环法:
- 输入十进制正整数x
- 定义记录位数的变量n=0
- while循环,x每缩小10倍,n=n+1,循环判断为x或x>0
- 输出位数n
#include <stdio.h>
int main()
{
int x;
scanf("%d", &x);
int n = 0;
while(x)
{
x /= 10;
n++;
}
printf("%d", n);
}
对数法:
对其求以10为底的对数后加1即为整数的位数
#include <stdio.h>
#include <math.h>
int main()
{
int x;
scanf("%d", &x);
printf("%d", (int)log10(x)+1);//必须强制类型转换
}