tasks a-s
This commit is contained in:
parent
47bf37c096
commit
b83f433714
12433 changed files with 156208 additions and 123 deletions
42
Task/Pascals-triangle/Go/pascals-triangle.go
Normal file
42
Task/Pascals-triangle/Go/pascals-triangle.go
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
package main
|
||||
|
||||
import "fmt"
|
||||
|
||||
func printTriangle(n int) {
|
||||
// degenerate cases
|
||||
if n <= 0 {
|
||||
return
|
||||
}
|
||||
fmt.Println(1)
|
||||
if n == 1 {
|
||||
return
|
||||
}
|
||||
// iterate over rows, zero based
|
||||
a := make([]int, (n+1)/2)
|
||||
a[0] = 1
|
||||
for row, middle := 1, 0; row < n; row++ {
|
||||
// generate new row
|
||||
even := row&1 == 0
|
||||
if even {
|
||||
a[middle+1] = a[middle] * 2
|
||||
}
|
||||
for i := middle; i > 0; i-- {
|
||||
a[i] += a[i-1]
|
||||
}
|
||||
// print row
|
||||
for i := 0; i <= middle; i++ {
|
||||
fmt.Print(a[i], " ")
|
||||
}
|
||||
if even {
|
||||
middle++
|
||||
}
|
||||
for i := middle; i >= 0; i-- {
|
||||
fmt.Print(a[i], " ")
|
||||
}
|
||||
fmt.Println("")
|
||||
}
|
||||
}
|
||||
|
||||
func main() {
|
||||
printTriangle(4)
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue