package main
import "fmt"
func twosum(arr []int, tar int) []int {
arrayMap := map[int]int{}
for i, val := range arr {
j, valInMap := arrayMap[tar - val]
if valInMap {
return []int{j,i}
}
arrayMap[val] = i
}
return nil
}
func printSlice(x []int){
fmt.Printf("slice=%v len=%d cap=%d \n",x,len(x),cap(x))
}
func main() {
var slice = make([]int, 0, 5)
var target int
var result [] int
fmt.Println("please input a array: ")
for i := 1; true; i++ {
var inputNum int
fmt.Printf("No.%d : ", i)
_, err := fmt.Scanf("%d", &inputNum)
if nil == err {
slice = append(slice, inputNum)
} else {
break
}
}
printSlice(slice)
fmt.Printf("input the target:")
fmt.Scanf("%d",&target)
result = twosum(slice, target)
fmt.Println("Index is ",result[0],"and",result[1])
fmt.Printf("%d + %d = %d",slice[result[0]], slice[result[1]], target)
}