题意是说计算机处理数据的能力为2^m-1,而一个人的能力为10^k,给出计算机的m值,要求出这个人的能力相应的k值。简单而言就是去求2^m-1=10^k。
因为已经知道2^m一定是一个偶数,所以-1可以省略不急,因为-1不会影响这个数的位数关系,这样式子就化成了2^m=10^k,再一化简得到k=m*log10(2),列出式子处理一下就可以得到结果了。
下面AC代码:
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<math.h>
using namespace std;
int main()
{
int k;
int Case=0;
int m;
while(scanf("%d",&m)!=EOF)
{
k=m*log10(2);
Case++;
cout<<"Case #"<<Case<<": "<<k<<endl;
}
return 0;
}