Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
60
Task/Hamming-numbers/Seed7/hamming-numbers.seed7
Normal file
60
Task/Hamming-numbers/Seed7/hamming-numbers.seed7
Normal file
|
|
@ -0,0 +1,60 @@
|
|||
$ include "seed7_05.s7i";
|
||||
include "bigint.s7i";
|
||||
|
||||
const func bigInteger: min (in bigInteger: a, in bigInteger: b, in bigInteger: c) is func
|
||||
result
|
||||
var bigInteger: min is 0_;
|
||||
begin
|
||||
if a < b then
|
||||
min := a;
|
||||
else
|
||||
min := b;
|
||||
end if;
|
||||
if c < min then
|
||||
min := c;
|
||||
end if;
|
||||
end func;
|
||||
|
||||
const func bigInteger: hamming (in integer: n) is func
|
||||
result
|
||||
var bigInteger: hammingNum is 1_;
|
||||
local
|
||||
var array bigInteger: hammingNums is 0 times 0_;
|
||||
var integer: index is 0;
|
||||
var bigInteger: x2 is 2_;
|
||||
var bigInteger: x3 is 3_;
|
||||
var bigInteger: x5 is 5_;
|
||||
var integer: i is 1;
|
||||
var integer: j is 1;
|
||||
var integer: k is 1;
|
||||
begin
|
||||
hammingNums := n times 1_;
|
||||
for index range 2 to n do
|
||||
hammingNum := min(x2, x3, x5);
|
||||
hammingNums[index] := hammingNum;
|
||||
if x2 = hammingNum then
|
||||
incr(i);
|
||||
x2 := 2_ * hammingNums[i];
|
||||
end if;
|
||||
if x3 = hammingNum then
|
||||
incr(j);
|
||||
x3 := 3_ * hammingNums[j];
|
||||
end if;
|
||||
if x5 = hammingNum then
|
||||
incr(k);
|
||||
x5 := 5_ * hammingNums[k];
|
||||
end if;
|
||||
end for;
|
||||
end func;
|
||||
|
||||
const proc: main is func
|
||||
local
|
||||
var integer: n is 0;
|
||||
begin
|
||||
for n range 1 to 20 do
|
||||
write(hamming(n) <& " ");
|
||||
end for;
|
||||
writeln;
|
||||
writeln(hamming(1691));
|
||||
writeln(hamming(1000000));
|
||||
end func;
|
||||
Loading…
Add table
Add a link
Reference in a new issue