hdu 6033 | 2017 Multi-University Training Contest - Team 1 A Add More Zero
http://acm.hdu.edu.cn/showproblem.php?pid=6033
题意:
问最大的x,满足 $$ 10^{x} \geq 2^{m}-1 $$
思路:
看到指数的比较大小,直觉就是取下对数啦
其实直接可以把1忽略,因为2的幂次显然不会出现末尾是0,所以不会影响结果
两边对10取对数得到 $$ x\leq \log_{10} 2^{m} $$
右边用换底公式就是 $$ \frac{m}{\log_{2}10 } $$
代码:
/* ***********************************************
Author :111qqz
Created Time :2017年10月31日 星期二 23时12分47秒
File Name :6033.cpp
************************************************ */
1#include <bits/stdc++.h>
2#define PB push_back
3#define fst first
4#define sec second
5#define lson l,m,rt<<1
6#define rson m+1,r,rt<<1|1
7#define ms(a,x) memset(a,x,sizeof(a))
8typedef long long LL;
9#define pi pair < int ,int >
10#define MP make_pair
1using namespace std;
2const double eps = 1E-8;
3const int dx4[4]={1,0,0,-1};
4const int dy4[4]={0,-1,1,0};
5const int inf = 0x3f3f3f3f;
6int m;
7int main()
8{
9 #ifndef ONLINE_JUDGE
10 //freopen("./in.txt","r",stdin);
11 #endif
12 int cas = 0 ;
13 while (~scanf("%d",&m))
14 {
15 double p = log(10)/log(2);
16 int ans = int(m/p);
17 printf("Case #%d: %d\n",++cas,ans);
18 }
1 #ifndef ONLINE_JUDGE
2 fclose(stdin);
3 #endif
4 return 0;
5}