1:求一个水仙花数
//定义一个水仙花数列 n>99&&n<999 func JudgeNum(n int) int { var g, s, b int g = n % 10 b = n / 100 s = (n - b*100 - g) / 10 if g*g*g+b*b*b+s*s*s == n { fmt.Println(n) } return 0 }
//求斐波那契数列的值 func Fb(n int) int64 { if n <= 1 { return 1 } else { return Fb(n-2) + Fb(n-1) } }
3:全排
/// 全排 参1:数据源(使用数组切片作为参数) 如果指定元素数,那么就是使用数组做参数了 参2:元素开始的位置 参数3:结束位置(个数-1) func Perm(list []string, k int, m int) { m = len(list) - 1 if k == m { for i := 0; i <= m; i++ { fmt.Printf("%s", list[i]) } fmt.Println("") } else { for i := k; i <= m; i++ { list[k], list[i] = list[i], list[k] Perm(list, k+1, m) list[k], list[i] = list[i], list[k] } } }调用:
fmt.Println("全排开始-------------------") var array = [5]string{"1", "2", "3", "4", "5"} var slice = array[0:5] //var list []string=make() Perm(slice, 0, 4) fmt.Println("全排结束-------------------")
4:map的应用
rating := map[string]float32{"C": 5, "Go": 4.5, "Python": 4.5, "C++": 2} value, ok := rating["C++"] if ok { fmt.Println(value) } //------ var mymap map[string]int mymap = map[string]int{"C++": 5, "C": 4, "C#": 3} value2, ok2 := mymap["C++"] if ok2 { fmt.Println(value2) } //----- numbers := make(map[string]int) numbers["one"] = 1 //赋值 numbers["ten"] = 10 //赋值 numbers["three"] = 3 value3, ok3 := numbers["C++"] if ok3 { fmt.Println(value3) } else { fmt.Println(ok3) } //遍历 for key, v := range mymap { fmt.Print(key) fmt.Print(":") fmt.Println(v) }
5:数组元素对换位置(第一个和最后一个,第二个和倒数第二个....)
//数组对换位置 func px() { a := []int{22, 3, 12, 34, 1, 92, 123} var length = len(a) var l int = length/2 + length%2 for i := 0; i < l; i++ { a[length-i-1], a[i] = a[i], a[length-i-1] } for _, v := range a { fmt.Println(v) } }