package main
import (
"fmt"
"runtime"
// "time"
)
func main() {
runtime.GOMAXPROCS(1)
fmt.Println(sum(5))
fmt.Println(amount(5))
fmt.Println(addAll(5))
fmt.Println(addNumbers(10))
fmt.Println(addNumbers2(10))
fmt.Println(sort([]int{1, 9, 5, 7, 13, 69, 4, 7, 2, 54, 9, 12, 69}))
}
// 1,1,2,3,5
func sum(n int) int {
if n == 1 || n == 2 {
return 1
}
return sum(n-1) + sum(n-2)
}
// 1,1,2,3,5
// 性能更佳
func amount(n int) int {
if n == 1 || n == 2 {
return 1
}
a, b := 1, 1
for i := 3; i < n; i++ {
a, b = b, a+b
}
return a + b
}
// 1+2+3+4+5
func addAll(n int) int {
var m int = 0
for i := 1; i <= n; i++ {
m += i
}
return m
}
// 1+1+2+3+5+8+13
func addNumbers(n int) int {
a, b := 1, 1
slice := []int{1, 1}
sum := 0
for i := 3; i <= n; i++ {
a, b = b, a+b
slice = append(slice, b)
}
for _, v := range slice {
sum += v
}
return sum
}
// 1+1+2+3+5+8+13
func addNumbers2(n int) int {
a, b := 1, 1
sum := a + b
for i := 3; i <= n; i++ {
a, b = b, a+b
sum += b
}
return sum
}
// 冒泡排序
func sort(arr []int) []int {
for i := 0; i < len(arr)-1; i++ {
for k := i + 1; k < len(arr); k++ {
if arr[i] > arr[k] {
arr[i], arr[k] = arr[k], arr[i]
}
}
}
return arr
}
第二种方法性能更好!