题目链接:
题目大意:给出m,求(2^m)-1化成十进制是几位
关键思想:当m很大时,-1可以不考虑。2^m=10^x=(10^log2(10))^x,x就等于2^m除以一个系数。
代码如下:
#include <iostream> #include <cstdio> #include <cmath> using namespace std; double x=3.321928095;//精度一定要够,否则WA int main(){ int cnt=0; int n; while(~scanf("%d",&n)){ printf("Case #%d: %.0f\n",++cnt,floor(1.0*n/x)); } return 0; }