Факториал в Seed7
Пример для версий
Seed7 2007-06-07,
Seed7 2007-06-24,
Seed7 2012-01-01
Используется рекурсивное определение факториала. Для хранения значений факториала используется тип bigInteger
, поэтому переполнения не происходит.
$ include "seed7_05.s7i";
include "bigint.s7i";
const func bigInteger: factorial (in var bigInteger: n) is func
result
var bigInteger: result is 1_;
begin
if n = 0_ then
result := 1_;
else
result := n * factorial(n - 1_);
end if;
end func;
const proc: main is func
local
var integer: n is 0;
begin
for n range 0 to 16 do
write(n);
write("! = ");
write(factorial(bigInteger conv n));
writeln;
end for;
end func;
Комментарии
]]>blog comments powered by Disqus
]]>