题意:给你一个m,然后问2^m-1 用十进制表示的位数。
分析:开始以为就是大数暴力一下。。根本没动脑子想是数学题。。
求x用十进制表示的位数,直接(int)log10(x),因为2^m没有等于10^z,所以减一就可以忽略了。
#include <iostream>
#include <cstring>
#include <algorithm>
#include <cmath>
#include <cstdio>
using namespace std;
#define eps 1e-8
int main()
{
int m;
int case1=1;
while(scanf("%d",&m)!=EOF)
{
double a=(double)m*(log10(2));
int ans=(int)a;
printf("Case #%d: %d\n",case1++,ans);
}
return 0;
}