From 66d1157ddb5b59ffa0741211ce45ce5c83ed9f69 Mon Sep 17 00:00:00 2001 From: zhaoxinlong Date: Tue, 10 Jan 2023 17:30:34 +0800 Subject: [PATCH 1/7] =?UTF-8?q?=E7=AC=AC=E5=9B=9B=E5=91=A8=E4=BD=9C?= =?UTF-8?q?=E4=B8=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../work1.go" | 13 ++++++++ .../work2.go" | 25 +++++++++++++++ .../work3.go" | 31 +++++++++++++++++++ 3 files changed, 69 insertions(+) create mode 100644 "homework/week4/GO11036\350\265\265\351\221\253\351\276\231/work1.go" create mode 100644 "homework/week4/GO11036\350\265\265\351\221\253\351\276\231/work2.go" create mode 100644 "homework/week4/GO11036\350\265\265\351\221\253\351\276\231/work3.go" diff --git "a/homework/week4/GO11036\350\265\265\351\221\253\351\276\231/work1.go" "b/homework/week4/GO11036\350\265\265\351\221\253\351\276\231/work1.go" new file mode 100644 index 0000000..b1ab249 --- /dev/null +++ "b/homework/week4/GO11036\350\265\265\351\221\253\351\276\231/work1.go" @@ -0,0 +1,13 @@ +package main + +func main() { + //s1 := make([]int, 3, 4) + //s2 := append(s1, 1) + + //Q: 请问s1,s2内各有什么元素? + //A: s1内有[0,0,0],s2内有[0,0,1] + //Q:s1修改一个元素会影响s2吗? s2修改一个元素会影响s1吗 + //A: 在不扩容的情况下,s1修改元素会影响到s2,s2修改元素会影响到s1 + //Q:s2在增加一个元素会怎么样 + //A:s1 [0,0,0] s2[0,0,0,1,2] +} diff --git "a/homework/week4/GO11036\350\265\265\351\221\253\351\276\231/work2.go" "b/homework/week4/GO11036\350\265\265\351\221\253\351\276\231/work2.go" new file mode 100644 index 0000000..47d816c --- /dev/null +++ "b/homework/week4/GO11036\350\265\265\351\221\253\351\276\231/work2.go" @@ -0,0 +1,25 @@ +package main + +import "fmt" + +func main() { + arr := [...]int{1, 4, 9, 16, 2, 5, 10, 15} + + a := 0 + b := 0 + d := make([]int, 0, 20) + + for i, i2 := range arr { + if i&1 == 0 { + a = i2 + } else { + b = i2 + } + c := a + b + if c > 1 { + d = append(d, c) + } + + } + fmt.Println(d) +} diff --git "a/homework/week4/GO11036\350\265\265\351\221\253\351\276\231/work3.go" "b/homework/week4/GO11036\350\265\265\351\221\253\351\276\231/work3.go" new file mode 100644 index 0000000..921035d --- /dev/null +++ "b/homework/week4/GO11036\350\265\265\351\221\253\351\276\231/work3.go" @@ -0,0 +1,31 @@ +package main + +import ( + "fmt" + "math/rand" + "sort" + "time" +) + +//随机产生100个整数 +//数字的范围[-200,200] +//升序输出这些生成的数字并打印其重复次数 + +func main() { + s := make([]int, 0, 100) + m := make(map[int]int) + + rand.Seed(time.Now().UnixNano()) + for i := 0; i < 100; i++ { + r := rand.Intn(400) - 200 + s = append(s, r) + m[r]++ + } + sort.Ints(s) + fmt.Println(s) + for num, count := range m { + if count > 1 { + fmt.Printf("%d\t%d\n", num, count) + } + } +} -- Gitee From d38b1c8801e5f177e79de14f6c254f0599436a68 Mon Sep 17 00:00:00 2001 From: zhaoxinlong Date: Wed, 11 Jan 2023 10:47:26 +0800 Subject: [PATCH 2/7] =?UTF-8?q?=E7=AC=AC=E5=9B=9B=E5=91=A8=E4=BD=9C?= =?UTF-8?q?=E4=B8=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../GO11036\350\265\265\351\221\253\351\276\231/work3.go" | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git "a/homework/week4/GO11036\350\265\265\351\221\253\351\276\231/work3.go" "b/homework/week4/GO11036\350\265\265\351\221\253\351\276\231/work3.go" index 921035d..809b93a 100644 --- "a/homework/week4/GO11036\350\265\265\351\221\253\351\276\231/work3.go" +++ "b/homework/week4/GO11036\350\265\265\351\221\253\351\276\231/work3.go" @@ -17,15 +17,16 @@ func main() { rand.Seed(time.Now().UnixNano()) for i := 0; i < 100; i++ { - r := rand.Intn(400) - 200 + r := rand.Intn(399) - 200 s = append(s, r) m[r]++ } sort.Ints(s) - fmt.Println(s) + fmt.Println("升序排列生成的随机数:\n", s) + //fmt.Println(m) for num, count := range m { if count > 1 { - fmt.Printf("%d\t%d\n", num, count) + fmt.Printf("重复的随机数:%-7d重复次数:%d\n", num, count) } } } -- Gitee From 78dd5fe81d0a4ddde160e735383639fcaea0923e Mon Sep 17 00:00:00 2001 From: zhaoxinlong Date: Wed, 11 Jan 2023 10:53:18 +0800 Subject: [PATCH 3/7] =?UTF-8?q?=E7=AC=AC=E5=9B=9B=E5=91=A8=E4=BD=9C?= =?UTF-8?q?=E4=B8=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../week4/GO11036\350\265\265\351\221\253\351\276\231/work3.go" | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git "a/homework/week4/GO11036\350\265\265\351\221\253\351\276\231/work3.go" "b/homework/week4/GO11036\350\265\265\351\221\253\351\276\231/work3.go" index 809b93a..b54b6c2 100644 --- "a/homework/week4/GO11036\350\265\265\351\221\253\351\276\231/work3.go" +++ "b/homework/week4/GO11036\350\265\265\351\221\253\351\276\231/work3.go" @@ -17,7 +17,7 @@ func main() { rand.Seed(time.Now().UnixNano()) for i := 0; i < 100; i++ { - r := rand.Intn(399) - 200 + r := rand.Intn(400) - 200 s = append(s, r) m[r]++ } -- Gitee From 9845716a432f5c27163f067604108c92a3713814 Mon Sep 17 00:00:00 2001 From: zhaoxinlong Date: Wed, 11 Jan 2023 11:18:47 +0800 Subject: [PATCH 4/7] =?UTF-8?q?=E7=AC=AC=E5=9B=9B=E5=91=A8=E4=BD=9C?= =?UTF-8?q?=E4=B8=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../GO11036\350\265\265\351\221\253\351\276\231/work2.go" | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git "a/homework/week4/GO11036\350\265\265\351\221\253\351\276\231/work2.go" "b/homework/week4/GO11036\350\265\265\351\221\253\351\276\231/work2.go" index 47d816c..39211c9 100644 --- "a/homework/week4/GO11036\350\265\265\351\221\253\351\276\231/work2.go" +++ "b/homework/week4/GO11036\350\265\265\351\221\253\351\276\231/work2.go" @@ -7,7 +7,7 @@ func main() { a := 0 b := 0 - d := make([]int, 0, 20) + s := make([]int, 0, 20) for i, i2 := range arr { if i&1 == 0 { @@ -17,9 +17,9 @@ func main() { } c := a + b if c > 1 { - d = append(d, c) + s = append(s, c) } } - fmt.Println(d) + fmt.Println(s) } -- Gitee From 6677fec84797d4059ed98c39ba970617569f970f Mon Sep 17 00:00:00 2001 From: zhaoxinlong Date: Wed, 11 Jan 2023 14:24:49 +0800 Subject: [PATCH 5/7] =?UTF-8?q?=E7=AC=AC=E5=9B=9B=E5=91=A8=E4=BD=9C?= =?UTF-8?q?=E4=B8=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../work1.go" | 6 +++--- .../work2.go" | 17 +++-------------- 2 files changed, 6 insertions(+), 17 deletions(-) diff --git "a/homework/week4/GO11036\350\265\265\351\221\253\351\276\231/work1.go" "b/homework/week4/GO11036\350\265\265\351\221\253\351\276\231/work1.go" index b1ab249..e71bbe6 100644 --- "a/homework/week4/GO11036\350\265\265\351\221\253\351\276\231/work1.go" +++ "b/homework/week4/GO11036\350\265\265\351\221\253\351\276\231/work1.go" @@ -3,11 +3,11 @@ package main func main() { //s1 := make([]int, 3, 4) //s2 := append(s1, 1) - //Q: 请问s1,s2内各有什么元素? - //A: s1内有[0,0,0],s2内有[0,0,1] + //A: s1内有[0,0,0],s2内有[0,0,0,1] //Q:s1修改一个元素会影响s2吗? s2修改一个元素会影响s1吗 //A: 在不扩容的情况下,s1修改元素会影响到s2,s2修改元素会影响到s1 //Q:s2在增加一个元素会怎么样 - //A:s1 [0,0,0] s2[0,0,0,1,2] + //A:s1 [0,0,0] s2[0,0,0,2] + // } diff --git "a/homework/week4/GO11036\350\265\265\351\221\253\351\276\231/work2.go" "b/homework/week4/GO11036\350\265\265\351\221\253\351\276\231/work2.go" index 39211c9..b8014b4 100644 --- "a/homework/week4/GO11036\350\265\265\351\221\253\351\276\231/work2.go" +++ "b/homework/week4/GO11036\350\265\265\351\221\253\351\276\231/work2.go" @@ -5,21 +5,10 @@ import "fmt" func main() { arr := [...]int{1, 4, 9, 16, 2, 5, 10, 15} - a := 0 - b := 0 - s := make([]int, 0, 20) - - for i, i2 := range arr { - if i&1 == 0 { - a = i2 - } else { - b = i2 - } - c := a + b - if c > 1 { - s = append(s, c) - } + s := make([]int, len(arr)-1) + for i := 0; i < len(s); i++ { + s[i] = arr[i] + arr[i+1] } fmt.Println(s) } -- Gitee From a65e2eda08c4e97a16434a5af7fa050c1d70a727 Mon Sep 17 00:00:00 2001 From: zhaoxinlong Date: Wed, 11 Jan 2023 15:00:27 +0800 Subject: [PATCH 6/7] =?UTF-8?q?=E7=AC=AC=E5=9B=9B=E5=91=A8=E4=BD=9C?= =?UTF-8?q?=E4=B8=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../week4/GO11036\350\265\265\351\221\253\351\276\231/work2.go" | 2 ++ 1 file changed, 2 insertions(+) diff --git "a/homework/week4/GO11036\350\265\265\351\221\253\351\276\231/work2.go" "b/homework/week4/GO11036\350\265\265\351\221\253\351\276\231/work2.go" index b8014b4..8c8e8e4 100644 --- "a/homework/week4/GO11036\350\265\265\351\221\253\351\276\231/work2.go" +++ "b/homework/week4/GO11036\350\265\265\351\221\253\351\276\231/work2.go" @@ -2,6 +2,8 @@ package main import "fmt" +// 有一个数组[1, 4, 9, 16, 2, 5, 10, 15],生成一个新的切片,要求新切片元素是数组 +// 相邻两项的和 func main() { arr := [...]int{1, 4, 9, 16, 2, 5, 10, 15} -- Gitee From dd4c363e9b9e9c2288bdd4f86e4383a7a96f37bc Mon Sep 17 00:00:00 2001 From: zhaoxinlong Date: Fri, 3 Feb 2023 22:25:22 +0800 Subject: [PATCH 7/7] =?UTF-8?q?=E4=BD=9C=E4=B8=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main.go" | 62 +++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 "homework/week5/GO11036\350\265\265\351\221\253\351\276\231/main.go" diff --git "a/homework/week5/GO11036\350\265\265\351\221\253\351\276\231/main.go" "b/homework/week5/GO11036\350\265\265\351\221\253\351\276\231/main.go" new file mode 100644 index 0000000..d96788e --- /dev/null +++ "b/homework/week5/GO11036\350\265\265\351\221\253\351\276\231/main.go" @@ -0,0 +1,62 @@ +package main + +import ( + "fmt" +) + +// 第一种阶乘计算方式 +func factorial1(n uint64) uint64 { + if n <= 0 { + return 1 + } + return n * factorial1(n-1) +} + +// 第一种优化,缓存版阶乘计算方式 +var m = make(map[uint64]uint64, 100) + +func factorial2(n uint64) uint64 { + if n <= 0 { + return 1 + } + if _, ok := m[n]; !ok { + m[n] = n * factorial1(n-1) + } + return m[n] +} + +// todo: 第三种实现方式 +//func factorial3(n int) int { +// +//} + +func trigonometry(n int) { + for i := 1; i <= n; i++ { + for j := 1; j <= n-i; j++ { + if j > 3 { + fmt.Print(" ") + } else { + fmt.Print(" ") + } + } + for k := i; k >= 1; k-- { + if k >= 10 { + fmt.Printf("%-3d", k) + } else { + fmt.Printf("%-2d", k) + } + } + fmt.Println() + } +} + +func main() { + fmt.Println("--------------------work1------------------------") + fmt.Println("-----------------第一种实现方式------------------") + fmt.Println(factorial1(10)) + fmt.Println("-----------------第二种实现方式------------------") + fmt.Println(factorial2(10)) + fmt.Println("--------------------work2------------------------") + trigonometry(12) + +} -- Gitee