首页 > 其他 > 详细

poj 1604 Just the Facts

时间:2014-05-13 21:14:53      阅读:410      评论:0      收藏:0      [点我收藏+]
bubuko.com,布布扣
 1 /**
 2 大意: 求n! 结果 从左到右 第一个非零数
 3 跟 1150 差不多。。
 4 **/
 5 #include <iostream>
 6 #include <cstdio>
 7 using namespace std;
 8 
 9 int s[][4]={
10     {6,2,4,8},{1,3,9,7},{1,7,9,3},{1,9,1,9}
11             };
12 int get2(int n){
13     if(n==0)
14         return 0;
15     return n/2+get2(n/2);
16 }
17 
18 int get5(int n){
19     if(n==0)
20         return 0;
21     return n/5+get5(n/5);
22 }
23 
24 int get(int n,int x){
25     if(n==0)
26         return 0;
27     return n/10+(n%10>=x)+get(n/5,x);
28 }
29 
30 int getx(int n,int x){
31     if(n==0)
32         return 0;
33     int res =0;
34     res = getx(n/2,x)+get(n,x);
35     return res;
36 }
37 
38 int main()
39 {
40     int n;
41     while(cin>>n){
42         int num2 = get2(n);
43         int num5 = get5(n);
44         int num3 = getx(n,3);
45         int num7 = getx(n,7);
46         int num9 = getx(n,9);
47         if(num2<num5){
48             printf("%5d -> %d\n",n,5);
49             continue;
50         }else{
51             int res =1;
52             if(num2!=num5){
53                 num2 = num2-num5;
54                 res  = res*s[0][num2%4];
55                 res = res%10;
56             }
57             res *= s[1][num3%4];
58             res %=10;
59             res *= s[2][num7%4];
60             res %=10;
61             res *= s[3][num9%4];
62             res = res%10;
63             printf("%5d -> %d\n",n,res);
64         }
65     }
66     return 0;
67 }
bubuko.com,布布扣

 

poj 1604 Just the Facts,布布扣,bubuko.com

poj 1604 Just the Facts

原文:http://www.cnblogs.com/Bang-cansee/p/3724119.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!