06 Golang函数定义

06函数定义

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
package main

import "fmt"

/* // 函数可以递归调用
* func function_name( [parameter list] ) [return_types] {
* // 函数体
* }
*
* 函数可以先使用后定义,这点与C语言不同,而且函数可以返回多个值
*/

// SDK软件开发工具包:Software Development Kit


func main(){
n := 6
fmt.Printf("斐波那契数列的第%d个数字为%d", n, fibo(n))

var arr = []int {2, 3, 32, 8, 1, 0, 12}
_max, _min := maxAndMin(arr, 7)
fmt.Println("\nmax = ", _max, "\nmin = ", _min)
}

func fibo(n int)int{
if n == 1 {
return 1
}else if n == 2 {
return 1
}else if n <= 0{
return 0
}
fi := fibo(n - 1) + fibo(n - 2)
return fi
}

func maxAndMin(arr [] int, n int)(int, int){
var _max, _min int

if n >= 2{
_min = arr[0]
_max = _min
}else if n == 1{
_min = arr[0]
_max = _min
}

for i := 1; i < n; i++{
if arr[i] > _max {
_max = arr[i]
}else if arr[i] < _min{
_min = arr[i]
}

}
return _max, _min
}