diff options
| author | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2021-04-18 18:08:03 +0100 |
|---|---|---|
| committer | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2021-04-18 18:08:03 +0100 |
| commit | 7727261245500a7e80511a2f552cd74639d32b4c (patch) | |
| tree | 40980f6adc2272c3d0f48700d976ab04150c5311 | |
| parent | b3a6a19d50188ae25bb7e8253425c00d2888442e (diff) | |
| download | perlweeklychallenge-club-7727261245500a7e80511a2f552cd74639d32b4c.tar.gz perlweeklychallenge-club-7727261245500a7e80511a2f552cd74639d32b4c.tar.bz2 perlweeklychallenge-club-7727261245500a7e80511a2f552cd74639d32b4c.zip | |
- Added guest contributions by Laurent Rosenfeld.
| -rw-r--r-- | challenge-108/laurent-rosenfeld/awk/ch-2.awk | 16 | ||||
| -rw-r--r-- | challenge-108/laurent-rosenfeld/c/ch-2.c | 23 | ||||
| -rw-r--r-- | challenge-108/laurent-rosenfeld/d/ch-2.d | 16 | ||||
| -rw-r--r-- | challenge-108/laurent-rosenfeld/go/ch-2.go | 18 | ||||
| -rw-r--r-- | challenge-108/laurent-rosenfeld/julia/ch-2.julia | 13 | ||||
| -rw-r--r-- | challenge-108/laurent-rosenfeld/pascal/ch-1.p | 12 | ||||
| -rw-r--r-- | challenge-108/laurent-rosenfeld/pascal/ch-2.p | 21 | ||||
| -rw-r--r-- | challenge-108/laurent-rosenfeld/python/ch-2.py | 9 | ||||
| -rw-r--r-- | challenge-108/laurent-rosenfeld/ruby/ch-2.rb | 12 | ||||
| -rw-r--r-- | challenge-108/laurent-rosenfeld/scala/ch-2.scala | 13 |
10 files changed, 153 insertions, 0 deletions
diff --git a/challenge-108/laurent-rosenfeld/awk/ch-2.awk b/challenge-108/laurent-rosenfeld/awk/ch-2.awk new file mode 100644 index 0000000000..f697c0081d --- /dev/null +++ b/challenge-108/laurent-rosenfeld/awk/ch-2.awk @@ -0,0 +1,16 @@ +BEGIN { + max = 10 + tr[0, 0] = 1 + results[0] = 1 + for (row = 1; row < max; row++) { + res = tr[row -1, row -1] + tr[row, 0] = res + results[row] = res + for (i = 1; i <= row; i++) { + tr[row, i] = tr[row, i-1] + tr[row - 1, i-1] + } + } + printf("First Bell numbers are: %d ", results[0]) + for (i = 1; i < max; i++) printf ("%d ", results[i]) + printf("\n"); +} diff --git a/challenge-108/laurent-rosenfeld/c/ch-2.c b/challenge-108/laurent-rosenfeld/c/ch-2.c new file mode 100644 index 0000000000..86380a30eb --- /dev/null +++ b/challenge-108/laurent-rosenfeld/c/ch-2.c @@ -0,0 +1,23 @@ +#include <stdio.h> +#include <stdlib.h> +#define MAX 10 + +int main() { + int tr[MAX][MAX]; + tr[0][0] = 1; + int results[MAX] = {1}; + for (int row = 1; row < MAX; row++) { + int res = tr[row - 1][row - 1]; + tr[row][0] = res; + results[row] = res; + for (int i = 1; i <= row; i++) { + tr[row][i] = tr[row][i-1] + tr[row - 1][i-1]; + } + } + printf("The ten first Bell numbers are: %i ", (results[0])); + for (int i = 1; i < MAX; i++) { + printf("%d ", results[i]); + } + printf("\n"); + return 0; +} diff --git a/challenge-108/laurent-rosenfeld/d/ch-2.d b/challenge-108/laurent-rosenfeld/d/ch-2.d new file mode 100644 index 0000000000..3d99b88f52 --- /dev/null +++ b/challenge-108/laurent-rosenfeld/d/ch-2.d @@ -0,0 +1,16 @@ +import std.stdio; + +void main() { + enum MAX = 10; + int tr[MAX][MAX]; + tr[0][0] = 1; + int results[MAX] = 1; + for (int row = 1; row < MAX; row++) { + tr[row][0] = tr[row - 1][row - 1]; + results[row] = tr[row][0]; + for (int i = 1; i <= row; i++) { + tr[row][i] = tr[row][i-1] + tr[row - 1][i-1]; + } + } + writeln("The first 10 Bell numbers are: ", results); +} diff --git a/challenge-108/laurent-rosenfeld/go/ch-2.go b/challenge-108/laurent-rosenfeld/go/ch-2.go new file mode 100644 index 0000000000..917392e61d --- /dev/null +++ b/challenge-108/laurent-rosenfeld/go/ch-2.go @@ -0,0 +1,18 @@ +package main + +import "fmt" + +func main() { + const MAX int = 10 + var tr [MAX][MAX]int + tr[0][0] = 1 + var results [MAX]int + for row := 1; row < MAX; row++ { + tr[row][0] = tr[row-1][row-1] + results[row] = tr[row][0] + for i := 1; i <= row; i++ { + tr[row][i] = tr[row][i-1] + tr[row-1][i-1] + } + } + fmt.Println("The first Bell numbers are: ", results) +} diff --git a/challenge-108/laurent-rosenfeld/julia/ch-2.julia b/challenge-108/laurent-rosenfeld/julia/ch-2.julia new file mode 100644 index 0000000000..456f566eea --- /dev/null +++ b/challenge-108/laurent-rosenfeld/julia/ch-2.julia @@ -0,0 +1,13 @@ +max = 10 +tr = zeros(Int32, max, max) +tr[1, 1] = 1 +results = ones(Int32, max) +for row = 2:max + res = tr[row - 1, row - 1] + tr[row, 1] = res + results[row] = res + for i = 2:row + tr[row, i] = tr[row, i-1] + tr[row - 1, i-1] + end +end +for n in results print("$n ") end diff --git a/challenge-108/laurent-rosenfeld/pascal/ch-1.p b/challenge-108/laurent-rosenfeld/pascal/ch-1.p new file mode 100644 index 0000000000..dac51637fd --- /dev/null +++ b/challenge-108/laurent-rosenfeld/pascal/ch-1.p @@ -0,0 +1,12 @@ +program memAddress; +var + value: integer; + intPtr: ^integer; + result: ^word; + +begin + value := 42; + intPtr := @value; + result := addr(intPtr); + writeln('Memory address of value is: ', result^); +end. diff --git a/challenge-108/laurent-rosenfeld/pascal/ch-2.p b/challenge-108/laurent-rosenfeld/pascal/ch-2.p new file mode 100644 index 0000000000..679ca46a59 --- /dev/null +++ b/challenge-108/laurent-rosenfeld/pascal/ch-2.p @@ -0,0 +1,21 @@ +program bell; +const + max = 9; + +var + tr: array [0..max, 0..max] of integer; + row, i : integer; + +begin + tr[0, 0] := 1; + for row := 1 to max do + begin + tr[row, 0] := tr[row - 1, row -1]; + for i := 1 to row do + tr[row, i] := tr[row, i-1] + tr[row - 1, i-1]; + end; + write('The first Bell numbers are: '); + for row :=0 to max do + write(tr[row, 0], ' '); + writeln; +end. diff --git a/challenge-108/laurent-rosenfeld/python/ch-2.py b/challenge-108/laurent-rosenfeld/python/ch-2.py new file mode 100644 index 0000000000..7ba144da96 --- /dev/null +++ b/challenge-108/laurent-rosenfeld/python/ch-2.py @@ -0,0 +1,9 @@ +max = 10 +tr = [[0] * max for i in range(max)] +tr[0][0] = 1 +for row in range(1, max): + tr[row][0] = tr[row - 1][row - 1] + for i in range(1, row+1): + tr[row][i] = tr[row][i-1] + tr[row - 1][i-1]; + +print( [row[0] for row in tr] ) diff --git a/challenge-108/laurent-rosenfeld/ruby/ch-2.rb b/challenge-108/laurent-rosenfeld/ruby/ch-2.rb new file mode 100644 index 0000000000..012b2c1b97 --- /dev/null +++ b/challenge-108/laurent-rosenfeld/ruby/ch-2.rb @@ -0,0 +1,12 @@ +max = 9 +tr = Array.new(max+1){Array.new(max+1)} +tr[0][0] = 1 +results = [1] +for row in 1..max + tr[row][0] = tr[row - 1][row -1] + results << tr[row][0] + for i in 1..row + tr[row][i] = tr[row][i-1] + tr[row - 1][i-1] + end +end +puts "The #{max+1} first Bell numbers are: #{results.join(" ")}" diff --git a/challenge-108/laurent-rosenfeld/scala/ch-2.scala b/challenge-108/laurent-rosenfeld/scala/ch-2.scala new file mode 100644 index 0000000000..366f929d53 --- /dev/null +++ b/challenge-108/laurent-rosenfeld/scala/ch-2.scala @@ -0,0 +1,13 @@ +object bellNum extends App { + val max = 10 + var tr = Array.ofDim[Int](max, max) + tr(0)(0) = 1 + for (row <- 1 until max) { + tr(row)(0) = tr(row - 1)(row - 1) + for (i <- 1 until row + 1) { + tr(row)(i) = tr(row)(i - 1) + tr(row - 1)(i - 1) + } + } + val result = for (i <- 0 until max) yield tr(i)(0) + println (s"Bell numbers: ${result.mkString(" ")}") +} |
