Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
12
Task/Ackermann-function/Seed7/ackermann-function-1.seed7
Normal file
12
Task/Ackermann-function/Seed7/ackermann-function-1.seed7
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
const func integer: ackermann (in integer: m, in integer: n) is func
|
||||
result
|
||||
var integer: result is 0;
|
||||
begin
|
||||
if m = 0 then
|
||||
result := succ(n);
|
||||
elsif n = 0 then
|
||||
result := ackermann(pred(m), 1);
|
||||
else
|
||||
result := ackermann(pred(m), ackermann(m, pred(n)));
|
||||
end if;
|
||||
end func;
|
||||
40
Task/Ackermann-function/Seed7/ackermann-function-2.seed7
Normal file
40
Task/Ackermann-function/Seed7/ackermann-function-2.seed7
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
$ include "seed7_05.s7i";
|
||||
include "bigint.s7i";
|
||||
|
||||
const func bigInteger: ackermann (in bigInteger: m, in bigInteger: n) is func
|
||||
result
|
||||
var bigInteger: ackermann is 0_;
|
||||
begin
|
||||
case m of
|
||||
when {0_}: ackermann := succ(n);
|
||||
when {1_}: ackermann := n + 2_;
|
||||
when {2_}: ackermann := 3_ + 2_ * n;
|
||||
when {3_}: ackermann := 5_ + 8_ * pred(2_ ** ord(n));
|
||||
otherwise:
|
||||
if n = 0_ then
|
||||
ackermann := ackermann(pred(m), 1_);
|
||||
else
|
||||
ackermann := ackermann(pred(m), ackermann(m, pred(n)));
|
||||
end if;
|
||||
end case;
|
||||
end func;
|
||||
|
||||
const proc: main is func
|
||||
local
|
||||
var bigInteger: m is 0_;
|
||||
var bigInteger: n is 0_;
|
||||
var string: stri is "";
|
||||
begin
|
||||
for m range 0_ to 3_ do
|
||||
for n range 0_ to 9_ do
|
||||
writeln("A(" <& m <& ", " <& n <& ") = " <& ackermann(m, n));
|
||||
end for;
|
||||
end for;
|
||||
writeln("A(4, 0) = " <& ackermann(4_, 0_));
|
||||
writeln("A(4, 1) = " <& ackermann(4_, 1_));
|
||||
stri := str(ackermann(4_, 2_));
|
||||
writeln("A(4, 2) = (" <& length(stri) <& " digits)");
|
||||
writeln(stri[1 len 80]);
|
||||
writeln("...");
|
||||
writeln(stri[length(stri) - 79 ..]);
|
||||
end func;
|
||||
Loading…
Add table
Add a link
Reference in a new issue