function.go 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. package main
  2. import "fmt"
  3. func main() {
  4. // minimumFromFour()
  5. // fmt.Println(fibonacci(9))
  6. // ExampleMyPrint()
  7. // ExampleExpandSlice1()
  8. // ExampleExpandSlice2()
  9. a, b := sumInt(1, 2, 3)
  10. fmt.Println(a, b)
  11. }
  12. func minimumFromFour() int {
  13. var min, val int
  14. fmt.Scan(&min)
  15. for i := 0; i < 3; i++ {
  16. fmt.Scan(&val)
  17. if val < min {
  18. min = val
  19. }
  20. }
  21. return min
  22. }
  23. func vote(x int, y int, z int) int {
  24. if (x + y + z) >= 2 {
  25. return 1
  26. } else {
  27. return 0
  28. }
  29. }
  30. func fibonacci(n int) int {
  31. var fn int
  32. var f1, f2 = 1, 1
  33. if n == 1 || n == 2 {
  34. return 1
  35. }
  36. for i := 2; i < n; i++ {
  37. fn = f1 + f2
  38. f1 = f2
  39. f2 = fn
  40. }
  41. return fn
  42. }
  43. func myPrint(a ...interface{}) {
  44. for _, elem := range a {
  45. fmt.Printf("%v ", elem)
  46. }
  47. }
  48. func ExampleMyPrint() {
  49. myPrint(1, "Hello", 3.14, true)
  50. }
  51. func ExampleExpandSlice1() {
  52. s := []interface{}{1, 2, 3, 4, 5}
  53. fmt.Println(s)
  54. fmt.Println(s...)
  55. }
  56. func ExampleExpandSlice2() {
  57. s1 := []int{1, 2, 3, 4, 5}
  58. s2 := []int{6, 7, 8, 9, 10}
  59. s1 = append(s1, s2...)
  60. fmt.Println(s1)
  61. }
  62. func sumInt(n ...int) (int, int) {
  63. var sum int
  64. for _, elem := range n {
  65. sum += elem
  66. }
  67. return len(n), sum
  68. }