Go语言 for

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
}

2:求一个斐波那契数列的总和

//求斐波那契数列的值
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)
	}
}





你可能感兴趣的:(Go语言 for)