题意
输入m
输出
2m
的位数-1
设 2m=10a+b ,其中a是整数,b是小数.那么a就是 2m 的位数-1
两边同时取对数
log102m=log1010a+b
m∗log102=(a+b)∗log1010
⌊m∗log102⌋=a
code:
#include<cstdio>
#include<cmath>
int main()
{
double lg=log10(2.00000);
int kase=1;
double m;
int res=0;
while(scanf("%lf",&m)!=EOF)
{
res=(int )(m*lg);
printf("Case #%d: %d\n",kase++,res);
}
return 0;
}