From c3c3c154d71f576e86d470ffa45d85c91b3012c0 Mon Sep 17 00:00:00 2001 From: VicRen Date: Wed, 18 Nov 2020 10:59:53 +0800 Subject: [PATCH] 20201118 --- 20201118/main.go | 22 +++++++++++++++ 20201118/main_test.go | 66 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 88 insertions(+) create mode 100644 20201118/main.go create mode 100644 20201118/main_test.go diff --git a/20201118/main.go b/20201118/main.go new file mode 100644 index 0000000..a4742c3 --- /dev/null +++ b/20201118/main.go @@ -0,0 +1,22 @@ +package main + +import "fmt" + +func main() { + fmt.Println(findMaxLine(65535)) +} + +func findMaxLine(n int32) int32 { + var ret int32 + for { + if findNumber(ret) > n { + ret-- + return ret + } + ret++ + } +} + +func findNumber(n int32) int32 { + return n * (n + 1) / 2 +} diff --git a/20201118/main_test.go b/20201118/main_test.go new file mode 100644 index 0000000..b0a58bf --- /dev/null +++ b/20201118/main_test.go @@ -0,0 +1,66 @@ +package main + +import "testing" + +func Test_findNumber(t *testing.T) { + type args struct { + n int32 + } + tests := []struct { + name string + args args + want int32 + }{ + { + "1", + args{1}, + 1, + }, + { + "2", + args{2}, + 3, + }, + { + "4", + args{4}, + 10, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + if got := findNumber(tt.args.n); got != tt.want { + t.Errorf("findNumber() = %v, want %v", got, tt.want) + } + }) + } +} + +func Test_findMaxLine(t *testing.T) { + type args struct { + n int32 + } + tests := []struct { + name string + args args + want int32 + }{ + { + "5", + args{5}, + 2, + }, + { + "8", + args{8}, + 3, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + if got := findMaxLine(tt.args.n); got != tt.want { + t.Errorf("findMaxLine() = %v, want %v", got, tt.want) + } + }) + } +}