1017: 判断正整数位数
题目描述
给定一个不多于5位的正整数,判断它是几位数,并输出。
输入
一个不多于5位的正整数。
输出
输出正整数的位数,单独占一行。
样例输入 Copy
111
样例输出 Copy
3
提示
使用函数log10(n),求出n的以10为底的对数,这个对数的整数部分,就是n的科学计数法中的指数,这个整数加1就是n的位数。
#include <stdio.h>
#include <math.h> //因为要调用log函数,所以引入头文件
int main() {
int a, b;
scanf("%d", &a);
b = log10(a) + 1; //此处的b用的int类型,所以算出来的小数会自动舍去只保留整数部分
printf("%d", b);
return 0;
}
n=loga(b)运算可以近似看做是:a的n次方近似等于b。
例如此题样例中的log10(111)退出来近似=3,反之也可以理解为10的3次方近似=b。
(只是个人对此题使用log解法的认识和理解,当然此题解法不限于这一种)