Add More Zero
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≤m≤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
题目的大体意思是吧2^m用10进制表示出来有多少位。
刚开始的时候傻傻的吧2^m的10进制用数组表示出来了,数数组存了多少个就是位数。(然后就超时了)
然后看他们的博客就知道了直接对2^m取对数就可以…
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
//http://acm.split.hdu.edu.cn/diy/contest_showproblem.php?pid=1001&cid=32494
using namespace std;
int main()
{
int m,count,ans;
count=1;
while(scanf("%d",&m)!=EOF){
ans=log10(2)*m;
printf("Case #%d: %d\n",count++,ans);
}
return 0;
}