2017 Multi-University Training Contest - Team 1:Add More Zero (hdu 6033)
2017-07-27 09:28
585 查看
Add More Zero
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)Total Submission(s): 868 Accepted Submission(s): 600
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 (2m−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 1to 10k (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≤105.
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
2017 Multi-University Training Contest - Team 1
//题意:问2的m次是10的几次数量级。
//思路:10的k次<2的m次<10的k+1次 => lg(2的m次)- 1 < k < lg(2的m次)
因为m最大有100000,所以2的m次直接是算不出来的,所以要用个小技巧,lg里面乘是可以化成2个lg相加的,(比如:lg8=lg2+lg4),所以我们可以把2的m次拆一下,每次算2的100次(我电脑测试过2的100次是可以直接算的),然后加起来就可以了,但注意每次去加的那个k要是double的,不然会精度缺失!
#include <iostream> #include <cstdio> #include <cmath> #include <string> #include <cstring> #include <algorithm> using namespace std; long long m; double k; int main() { int Case = 1; while (scanf("%lld", &m) != EOF) { printf("Case #%d: ", Case++); k = 0; while (m > 0) { if (m > 100) k += log10(pow(2, 100)); else k += log10(pow(2, m)); m = m - 100; } long long ans = (long long)k; printf("%lld\n", ans); } return 0; }
2m
2m
2m
相关文章推荐
- HDU-6033 Add More Zero - 2017 Multi-University Training Contest - Team 1(水之崩心态题)
- 2017 Multi-University Training Contest - Team 1(hdu 6033 Add More Zero)
- 2017 Multi-University Training Contest - Team 1 HDU 6033 Add More Zero【对数】
- 2017 Multi-University Training Contest - Team 1 1001&&HDU 6033 Add More Zero【签到题,数学,水】
- hdoj 6033(2017 Multi-University Training Contest - Team 1) Add More Zero
- 2017 Multi-University Training Contest - Team 1 1001 Add More Zero
- 2017 Multi-University Training Contest - Team 1 Add More Zero
- 2017 Multi-University Training Contest - Team 1 1001 Add More Zero
- 【2017 Multi-University Training Contest - Team 1 1001】Add More Zero
- 2017 Multi-University Training Contest - Team 1 之Add More Zero
- 2017 Multi-University Training Contest - Team 1 Add More Zero
- 2017 Multi-University Training Contest - Team 1&hdu6033 Add More Zero
- 2017 Multi-University Training Contest - Team 1 1001 hdu 6033
- hdu 6058 Kanade's sum(链表)(2017 Multi-University Training Contest - Team 3 )
- hdu 6069 Counting Divisors(约数个数)(2017 Multi-University Training Contest - Team 4 )
- hdu 6070 Dirt Ratio(二分+线段树)(2017 Multi-University Training Contest - Team 4 )
- hdu 6071 Lazy Running(优先队列+dijkstra)(2017 Multi-University Training Contest - Team 4)
- HDU 2017 Multi-University Training Contest - Team 4 1009 1011
- hdu 6073 Matching In Multiplication(2017 Multi-University Training Contest - Team 4 )
- HDU 6168 - Numbers 水题 2017 Multi-University Training Contest - Team 9