aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad S Anwar <mohammad.anwar@yahoo.com>2021-04-18 18:08:03 +0100
committerMohammad S Anwar <mohammad.anwar@yahoo.com>2021-04-18 18:08:03 +0100
commit7727261245500a7e80511a2f552cd74639d32b4c (patch)
tree40980f6adc2272c3d0f48700d976ab04150c5311
parentb3a6a19d50188ae25bb7e8253425c00d2888442e (diff)
downloadperlweeklychallenge-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.awk16
-rw-r--r--challenge-108/laurent-rosenfeld/c/ch-2.c23
-rw-r--r--challenge-108/laurent-rosenfeld/d/ch-2.d16
-rw-r--r--challenge-108/laurent-rosenfeld/go/ch-2.go18
-rw-r--r--challenge-108/laurent-rosenfeld/julia/ch-2.julia13
-rw-r--r--challenge-108/laurent-rosenfeld/pascal/ch-1.p12
-rw-r--r--challenge-108/laurent-rosenfeld/pascal/ch-2.p21
-rw-r--r--challenge-108/laurent-rosenfeld/python/ch-2.py9
-rw-r--r--challenge-108/laurent-rosenfeld/ruby/ch-2.rb12
-rw-r--r--challenge-108/laurent-rosenfeld/scala/ch-2.scala13
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(" ")}")
+}