L1-3. 这道真是简单题

题目:

 1 #include <cstdio>
 2 using namespace std;
 3 long long  z[105],m[105];
 4 long long  gcd(long long  a,long long  b)
 5 {
 6     long s=a,t=b;
 7         long long c = a%b;
 8         while(c){
 9                 a = b;
10                 b = c;
11                 c = a % b;
12         }
13         return s*t/b;
14 }
15 long long  gcd1(long long  a,long long  b)
16 {
17     long s=a,t=b;
18         long long c = a%b;
19         while(c){
20                 a = b;
21                 b = c;
22                 c = a % b;
23         }
24         return b;
25 }
26 int main()
27 {
28     int nn;
29     scanf("%d",&nn);
30     for(int i=0;i<nn;i++)
31         scanf("%lld/%lld",z+i,m+i);
32     long long  n=1;
33     for(int i=0;i<nn;i++)
34     {
35         n=gcd(n,m[i]);
36     }
37     int c;
38     for(int i=0;i<nn;i++)
39     {
40         c=n/m[i];
41         z[i]*=c;
42     }
43     long long sum=0;
44     for(int i=0;i<nn;i++)
45         sum+=z[i];
46     if(sum%n==0)
47         printf("%lld
",sum/n);
48     else
49        {
50            long long  cc=sum/n;//整数
51            long long  fenmu=sum%n;
52            long long ccc=gcd1(fenmu,n);
53            if(cc==0)
54                 printf("%lld/%lld",fenmu/ccc,n/ccc);
55            else
56                 printf("%lld %lld/%lld",cc,fenmu/ccc,n/ccc);
57        }
58     return 0;
59 }
原文地址:https://www.cnblogs.com/WDKER/p/5495404.html