Light oj 1138 - Trailing Zeroes (III) 【二分查找 && N!中末尾连续0的个数】
2017-07-03 13:14
615 查看
1138 - Trailing Zeroes (III)
You task is to find minimal natural number N, so that N! contains exactly Q zeroes on the trail in decimal notation. As you know N! = 1*2*...*N. For example, 5! = 120, 120 contains one zero
on the trail.
Each case contains an integer Q (1 ≤ Q ≤ 108) in a line.
题意:给你一个数Q。代表N!中末尾连续0的个数。让你求出最小的N。
求N!中尾连续0的个数:
AC代码
PDF (English) | Statistics | Forum |
Time Limit: 2 second(s) | Memory Limit: 32 MB |
on the trail.
Input
Input starts with an integer T (≤ 10000), denoting the number of test cases.Each case contains an integer Q (1 ≤ Q ≤ 108) in a line.
Output
For each case, print the case number and N. If no solution is found then print 'impossible'.Sample Input | Output for Sample Input |
3 1 2 5 | Case 1: 5 Case 2: 10 Case 3: impossible |
求N!中尾连续0的个数:
LL change(LL x){ LL ans = 0; while(x){ ans += x / 5; x /= 5; } return ans; }
AC代码
#include <stdio.h>
#include <string.h>
#include <queue>
#include <algorithm>
#define INF 0x3f3f3f3f
#define LL long long
LL change(LL x){ LL ans = 0; while(x){ ans += x / 5; x /= 5; } return ans; }
int main (){
int T, n;
int k = 1;
scanf("%d", &T);
while(T--){
scanf("%d", &n);
LL l = 0, r = 100000000 * 5 + 10;
LL mid, ans;
while(r > l){
mid = (l + r) / 2;
if(change(mid) >= n){
ans = mid;
r = mid;
}
else
l = mid + 1;
}
printf("Case %d: ", k++);
if(change(ans) == n)
printf("%lld\n", ans);
else
printf("impossible\n");
}
return 0;
}
相关文章推荐
- Light oj 1138 - Trailing Zeroes (III) 【二分查找 && N!中末尾连续0的个数】
- Light oj 1138 - Trailing Zeroes (III) 【二分查找好题】【 给出N!末尾有连续的Q个0,让你求最小的N】
- Light oj 1138 - Trailing Zeroes (III) 【二分查找好题】【 给出N!末尾有连续的Q个0,让你求最小的N】
- LightOJ 1138 - Trailing Zeroes (III)(二分&阶乘末尾0的个数)
- light oj 1138 - Trailing Zeroes (III)【规律&&二分】
- LIGHT OJ 1138 - Trailing Zeroes (III)【N!后0的个数&&二分(好题)】
- LightOj 1138 - Trailing Zeroes (III) 阶乘末尾0的个数 & 二分
- lightoj-1138-Trailing Zeroes (III) -二分查找
- lightoj- 1138 - Trailing Zeroes (III)【思维】【二分查找】
- LightOJ 1138 Trailing Zeroes (III) 二分查找
- light oj 1138 - Trailing Zeroes (III)《《二分》》
- 【Light oj 1138 】- Trailing Zeroes (III)(二分,思维)
- Light OJ 1138:Trailing Zeroes (III)【二分+求阶乘中某质因子的幂】
- Light oj-1138 Trailing Zeroes (III) (二分&数学)
- Light OJ:1138 Trailing Zeroes (III)(二分)
- Light oj 1138 - Trailing Zeroes (III) (二分)
- 【二分 && 唯一分解定理】LightOJ - 1138 Trailing Zeroes (III)
- 【Light OJ 1138 】Trailing Zeroes (III) 【二分+数学】
- LightOJ 1138 - Trailing Zeroes (III) 二分
- Light OJ 1138 - Trailing Zeroes (III)