-
Notifications
You must be signed in to change notification settings - Fork 0
/
advent15-1.go
71 lines (54 loc) · 1.57 KB
/
advent15-1.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
package main
import("fmt";"bufio";"os";"strings";"math")
func main(){
var summer float64
summer = 0
cnt:=0
// iiii := 1
fmt.Println("Input HASH:")
//NEED TO USE CAT INTO PROGRAM ELSE IT ENDS STREAM EARLY
reader:= bufio.NewReader(os.Stdin)
for{
s,_ := reader.ReadString(',')
s=strings.ReplaceAll(s,",","")
s=strings.TrimSpace(s)
if(s=="end"||s==""){break}
// chars := make(map[int]rune)
// for _,c := range s{
// if chars[int(c)]==0{
// chars[int(c)]=c
// }else{
// if((chars[int(c)])!=c){
// fmt.Println(string(c),"is not equal to",string(chars[int(c)]),"please change the overlap")
// }
// }
// }
// if(s[0]==','){
// s1 := []byte(s)
// s1[0]=' '
// s = strings.TrimSpace(string(s1))
// }
//ss := strings.Split(s,",")
// for i,c := range chars{
// fmt.Printf("%d:%c ",i,c)
// }
// fmt.Printf("\n")
//for _,sss := range ss{
v := hash(s)
summer = summer + float64(v)
cnt++
fmt.Println(cnt,s,v,summer)
//}
}
fmt.Println("Final Sum:",summer)
}
func hash(s string) int{
r := 0
s = strings.TrimSpace(s)
for _,c := range s{
r = r+int(c)
r = r*17
r = int(math.Mod(float64(r),float64(256)))
}
return r
}