Skip to content

Commit 9eff0f6

Browse files
author
Aliaksandr Pliutau
authored
Merge pull request #2 from kennygrant/master
Triangles
2 parents f905e7c + 22bc114 commit 9eff0f6

File tree

3 files changed

+46
-2
lines changed

3 files changed

+46
-2
lines changed

floyd/cmd/cmd.go

+29
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package main
2+
3+
import (
4+
"fmt"
5+
"os"
6+
"strconv"
7+
8+
"github.com/kennygrant/practice-go/floyd"
9+
)
10+
11+
func main() {
12+
if len(os.Args) < 2 {
13+
fmt.Printf("Please supply the number of rows you want as an argument\n")
14+
return
15+
}
16+
17+
rows, err := strconv.Atoi(os.Args[1])
18+
if err != nil {
19+
panic(err)
20+
}
21+
22+
for _, row := range floyd.Triangle(rows) {
23+
for i := range row {
24+
fmt.Printf("%-2d ", row[i])
25+
}
26+
fmt.Printf("\n")
27+
}
28+
29+
}

floyd/floyd.go

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package floyd
2+
3+
// Triangle makes a Floyd's triangle matrix with rows count.
4+
func Triangle(rows int) [][]int {
5+
triangle := make([][]int, rows)
6+
var i int
7+
for r := 0; r < rows; r++ {
8+
triangle[r] = make([]int, r+1)
9+
for c := 0; c < r+1; c++ {
10+
i++
11+
triangle[r][c] = i
12+
}
13+
}
14+
return triangle
15+
}

floyd/floyd_test.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ var tests = []struct {
1919

2020
func TestFloydTriangle(t *testing.T) {
2121
for _, test := range tests {
22-
actual := FloydTriangle(test.rowsCount)
22+
actual := Triangle(test.rowsCount)
2323
if len(actual) != len(test.expected) {
2424
t.Fatalf("FloydTriangle(%d) expected length %d, got %d", test.rowsCount, len(test.expected), len(actual))
2525
}
@@ -39,7 +39,7 @@ func TestFloydTriangle(t *testing.T) {
3939
func BenchmarkTestFloydTriangle(b *testing.B) {
4040
for i := 0; i < b.N; i++ {
4141
for _, test := range tests {
42-
FloydTriangle(test.rowsCount)
42+
Triangle(test.rowsCount)
4343
}
4444
}
4545
}

0 commit comments

Comments
 (0)