Data update
This commit is contained in:
parent
ed705008a8
commit
0df55f9f24
2196 changed files with 32999 additions and 3075 deletions
52
Task/Pascals-triangle/Bait/pascals-triangle.bait
Normal file
52
Task/Pascals-triangle/Bait/pascals-triangle.bait
Normal file
|
|
@ -0,0 +1,52 @@
|
|||
// Create a Pascal's triangle with a given number of rows.
|
||||
// Returns an empty array for row_nr <= 0.
|
||||
fun pascals_triangle(row_nr i32) [][]i32 {
|
||||
mut rows := [][]i32
|
||||
|
||||
// Iterate over all rows
|
||||
for r := 0; r < row_nr; r += 1 {
|
||||
// Store the row above the current one
|
||||
mut above := rows[r - 1]
|
||||
|
||||
// Fill the current row. It contains r + 1 numbers
|
||||
for i := 0; i <= r; i += 1 {
|
||||
// First number is always 1
|
||||
if i == 0 {
|
||||
rows.push([1]) // Push new row
|
||||
}
|
||||
// Last number is always 1
|
||||
else if i == r {
|
||||
rows[r].push(1)
|
||||
}
|
||||
// Other numbers are the sum of the two numbers above them
|
||||
else {
|
||||
rows[r].push(above[i - 1] + above[i])
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return rows
|
||||
}
|
||||
|
||||
|
||||
// Helper function to pretty print triangles.
|
||||
// It still get's ugly once numbers have >= 2 digits.
|
||||
fun print_triangle(triangle [][]i32) {
|
||||
for i, row in triangle {
|
||||
// Create string with leading spaces
|
||||
mut s := ' '.repeat(triangle.length - i - 1)
|
||||
|
||||
// Add each number to the string
|
||||
for n in row {
|
||||
s += n.str() + ' '
|
||||
}
|
||||
|
||||
// Print and trim the extra trailing space
|
||||
println(s.trim_right(' '))
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
fun main() {
|
||||
print_triangle(pascals_triangle(7))
|
||||
}
|
||||
20
Task/Pascals-triangle/EasyLang/pascals-triangle.easy
Normal file
20
Task/Pascals-triangle/EasyLang/pascals-triangle.easy
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
numfmt 0 4
|
||||
proc pascal n . .
|
||||
r[] = [ 1 ]
|
||||
for i to n
|
||||
rn[] = [ ]
|
||||
l = 0
|
||||
for j to n - len r[]
|
||||
write " "
|
||||
.
|
||||
for r in r[]
|
||||
write r
|
||||
rn[] &= l + r
|
||||
l = r
|
||||
.
|
||||
print ""
|
||||
rn[] &= l
|
||||
swap r[] rn[]
|
||||
.
|
||||
.
|
||||
pascal 13
|
||||
|
|
@ -1,23 +1,12 @@
|
|||
import "/fmt" for Fmt
|
||||
import "/math" for Int
|
||||
|
||||
var binomial = Fn.new { |n, k|
|
||||
if (n == k) return 1
|
||||
var prod = 1
|
||||
var i = n - k + 1
|
||||
while (i <= n) {
|
||||
prod = prod * i
|
||||
i = i + 1
|
||||
}
|
||||
return prod / Int.factorial(k)
|
||||
}
|
||||
import "./fmt" for Fmt
|
||||
import "./math" for Int
|
||||
|
||||
var pascalTriangle = Fn.new { |n|
|
||||
if (n <= 0) return
|
||||
for (i in 0...n) {
|
||||
System.write(" " * (n-i-1))
|
||||
for (j in 0..i) {
|
||||
Fmt.write("$3d ", binomial.call(i, j))
|
||||
Fmt.write("$3d ", Int.binomial(i, j))
|
||||
}
|
||||
System.print()
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue