码迷,mamicode.com
首页 > 其他好文 > 详细

C - Trailing Zeroes (III)(二分)

时间:2018-03-14 22:05:11      阅读:152      评论:0      收藏:0      [点我收藏+]

标签:std   puts   art   tin   ssi   ...   can   lap   tar   

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.

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

3

1

2

5

Sample Output

Case 1: 5

Case 2: 10

Case 3: impossible

 

AC代码

技术分享图片
 1 #include<stdio.h>
 2 const int MAXN=0x3f3f3f3f;//这个要足够大才能找到10^8
 3 int getq(int x){
 4     int q=0;
 5     while(x){
 6         q+=x/5;
 7         x/=5;
 8     }
 9     return q;
10 }
11 void erfen(int n){
12     int l=0,r=MAXN;
13     while(l<=r){
14         int mid=(l+r)>>1;
15         if(getq(mid)>=n)r=mid-1;//二分这点注意
16         else l=mid+1;
17     }
18     if(getq(l)==n)printf("%d\n",l);
19     else puts("impossible");
20 }
21 int main(){
22     int T,Q,flot=0;
23     scanf("%d",&T);
24     while(T--){
25         scanf("%d",&Q);
26         printf("Case %d: ",++flot);
27          erfen(Q);
28     }
29     return 0;
30 }
View Code

 

C - Trailing Zeroes (III)(二分)

标签:std   puts   art   tin   ssi   ...   can   lap   tar   

原文地址:https://www.cnblogs.com/ruruozhenhao/p/8570214.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!