diff --git a/.DS_Store b/.DS_Store index 118ac04..bff0db8 100644 Binary files a/.DS_Store and b/.DS_Store differ diff --git a/main.go b/main.go index 7905807..2712b7b 100644 --- a/main.go +++ b/main.go @@ -1,5 +1,12 @@ package main +import ( + "fmt" + "gotest/missing" +) + func main() { + fmt.Print(missing.FindNumber([]int{1, 3, 5, 2, 6, 7, -9, 8, 4})) + } diff --git a/missing/missing.go b/missing/missing.go new file mode 100644 index 0000000..31611b3 --- /dev/null +++ b/missing/missing.go @@ -0,0 +1,24 @@ +package missing + +import "fmt" + +func FindNumber(A []int) int { + + var elements_sum int + + for i := 0; i < len(A); i++ { + + if A[i] < 0 || A[i] > 100000 { + fmt.Print("array has negative element or longer than expected") + return A[i] + } else { + elements_sum = elements_sum + A[i] + } + + } + + nums_sum := (len(A) + 1) * (len(A) + 2) / 2 + + return nums_sum - elements_sum + +} diff --git a/missing/missing_test.go b/missing/missing_test.go new file mode 100644 index 0000000..4142715 --- /dev/null +++ b/missing/missing_test.go @@ -0,0 +1 @@ +package missing_test diff --git a/rotation/rotation.go b/rotation/rotation.go index d10fcc1..c275f08 100644 --- a/rotation/rotation.go +++ b/rotation/rotation.go @@ -1,3 +1,4 @@ +// Циклическая ротация package rotation func Rotation(A []int, K int) []int { diff --git a/unique/findunique.go b/unique/findunique.go index 045935d..218b4f4 100644 --- a/unique/findunique.go +++ b/unique/findunique.go @@ -1,10 +1,18 @@ +// Чудные вхождения в массив package unique +import "fmt" + func FindUnique(A []int) int { var result int - for i := 0; i < len(A); i++ { - result = result ^ A[i] + if len(A)%2 != 0 { + for i := 0; i < len(A); i++ { + //xor use + result = result ^ A[i] + } + } else { + fmt.Println("the number of elements is even") } return result