Add More Zero
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)Total Submission(s): 1121 Accepted Submission(s): 749
Problem Description
There is a youngster known for amateur propositions concerning several mathematical hard problems.
Nowadays, he is preparing a thought-provoking problem on a specific type of supercomputer which has ability to support calculations of integers between $0$ and $(2^m - 1)$ (inclusive).
As a young man born with ten fingers, he loves the powers of $10$ so much, which results in his eccentricity that he always ranges integers he would like to use from $1$ to $10^k$ (inclusive).
For the sake of processing, all integers he would use possibly in this interesting problem ought to be as computable as this supercomputer could.
Given the positive integer $m$, your task is to determine maximum possible integer $k$ that is suitable for the specific supercomputer.
Nowadays, he is preparing a thought-provoking problem on a specific type of supercomputer which has ability to support calculations of integers between $0$ and $(2^m - 1)$ (inclusive).
As a young man born with ten fingers, he loves the powers of $10$ so much, which results in his eccentricity that he always ranges integers he would like to use from $1$ to $10^k$ (inclusive).
For the sake of processing, all integers he would use possibly in this interesting problem ought to be as computable as this supercomputer could.
Given the positive integer $m$, your task is to determine maximum possible integer $k$ that is suitable for the specific supercomputer.
Input
The input contains multiple test cases. Each test case in one line contains only one positive integer $m$, satisfying $1 \leq m \leq 10^5$.
Output
For each test case, output "
Case #$x$: $y$" in one line (without quotes), where $x$ indicates the case number starting from $1$ and $y$ denotes the answer of corresponding case.
Sample Input
1 64
Sample Output
Case #1: 0 Case #2: 19
Source
Recommend
liuyiding
题意:给出n 求2的n次方 求这个数科学计数法之后是乘以10的独傲少次方
这道题其实没有什么难度 就是一个简单的指数转对数 可是我也还是暴力错了两次 因为n的最大值为100000 而且自己测试的时候用时根本不到1秒 感觉并不会超时 后来发现原来有这种更简单的方法 把暴力的o(n)变成o(1) 怀疑hdu后台的时间根本就不是1s…… 而最快的解法只需要用n*log2就可以
ac代码:
#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
double a=0.301029995663; //log2的值
int m;
int l=0;
while(scanf("%d",&m)!=EOF)
{
l++;
cout<<"Case #"<<l<<": "<<(int)(m*a)<<endl;
}
return 0;
}