-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path9.go
101 lines (82 loc) · 2.15 KB
/
9.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
// package main
// import (
// "bufio"
// "fmt"
// "math"
// "os"
// "strconv"
// "strings"
// )
// // 公约数 x<y
// func GCD(x int, y int) int {
// if x > y {
// return GCD(y, x)
// } else if x == y {
// return x
// } else {
// if (y % x) != 0 {
// return GCD(x, y%x)
// } else {
// return x
// }
// }
// }
// func LCM(x int, y int) int {
// gcd := GCD(x, y)
// lcm := x * y / gcd
// return lcm
// }
// func main() {
// var count int
// fmt.Scanf("%d\n", &count)
// var numerator, denominator []int
// inputReader := bufio.NewReader(os.Stdin)
// line, _ := inputReader.ReadString('\n')
// numbers := strings.Fields(line)
// for _, v := range numbers {
// tmp := strings.Split(v, "/")
// ntmp, _ := strconv.Atoi(tmp[0])
// dtmp, _ := strconv.Atoi(tmp[1])
// numerator = append(numerator, ntmp)
// denominator = append(denominator, dtmp)
// }
// lcm := denominator[0]
// for i := 0; i < count-1; i++ {
// lcm = LCM(lcm, denominator[i+1])
// }
// // fmt.Printf("lcm: %v\n", lcm)
// for i := 0; i < count; i++ {
// numerator[i] = numerator[i] * lcm / denominator[i]
// }
// // fmt.Printf("numerator: %v\n", numerator)
// var sum_numerator, intPart int
// for i := 0; i < count; i++ {
// sum_numerator += numerator[i]
// }
// if sum_numerator == 0 {
// fmt.Printf("0\n")
// return
// }
// //fmt.Printf("sum_numerator: %v\n", sum_numerator)
// // 如果有整数部分
// if int(math.Abs(float64(sum_numerator))) >= lcm {
// intPart = int(sum_numerator / lcm)
// sum_numerator = sum_numerator % lcm
// }
// if intPart == 0 {
// fmt.Printf("%v/%v", sum_numerator, lcm)
// } else {
// if sum_numerator == 0 {
// fmt.Printf("%v", intPart)
// } else {
// gcd := GCD(sum_numerator, lcm)
// gcd = int(math.Abs(float64(gcd)))
// //fmt.Printf("sum_numerator: %v\n", sum_numerator)
// //fmt.Printf("lcm: %v\n", lcm)
// //fmt.Printf("gcd: %v\n", gcd)
// sum_numerator = sum_numerator / gcd
// lcm = lcm / gcd
// fmt.Printf("%v %v/%v", intPart, sum_numerator, lcm)
// }
// }
// }