首页 > 其他 > 详细

国王游戏

时间:2018-08-17 21:15:21      阅读:158      评论:0      收藏:0      [点我收藏+]

技术分享图片技术分享图片

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 #include<algorithm>
 5 using namespace std;
 6 const int maxn=100007;
 7 const int maxm=200007;
 8 int a[maxn],b[maxn];
 9 int ans[maxm*10];
10 int now,num,l=1;
11 void multi(int x){
12     for(int i=1;i<=l;i++) ans[i]*=a[x];//1~l 低位到高位 
13     for(int i=1;i<=l;i++){
14         ans[i+1]+=(ans[i]/10);
15         ans[i]%=10;
16     }
17     l++;
18     while(ans[l]>9)
19     {
20         ans[l+1]+=(ans[l]/10);
21         ans[l]%=10;
22         l++;
23     }//if(ans[l+1]>0) l++;这样是错的,因为ans[l]可能很大 
24 }
25 void divis(int x){
26     for(int i=l;i>=1;i--){
27         ans[i-1]+=((ans[i]%b[x])*10);
28         ans[i]/=b[x];
29     }
30     while(ans[l]==0) l--;
31     if(l==0) cout<<1<<endl;
32 }
33 int main(){
34     int n;cin>>n;
35     cin>>a[0]>>b[0];
36     for(int i=1;i<=n;i++){
37         cin>>a[i]>>b[i]; 
38     }
39     int aa=0,bb=0;
40     for(int i=1;i<=n;i++){
41         if(a[i]*b[i]>aa){
42             aa=a[i]*b[i];
43             bb=i;
44         }
45     }
46     l=1;
47     ans[1]=a[0];
48     for(int i=1;i<=n;i++)
49         if(i!=bb) multi(i);
50     divis(bb);
51     for(int i=l;i>=1;i--) cout<<ans[i];
52     cout<<endl;
53     return 0;
54 } 

 

国王游戏

原文:https://www.cnblogs.com/lcan/p/9495275.html

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