Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
32
Task/Bernoulli-numbers/Ada/bernoulli-numbers.ada
Normal file
32
Task/Bernoulli-numbers/Ada/bernoulli-numbers.ada
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
WITH GMP.Rationals, GMP.Integers, Ada.Text_IO, Ada.Strings.Fixed, Ada.Strings;
|
||||
USE GMP.Rationals, GMP.Integers, Ada.Text_IO, Ada.Strings.Fixed, Ada.Strings;
|
||||
|
||||
PROCEDURE Main IS
|
||||
|
||||
FUNCTION Bernoulli_Number (N : Natural) RETURN Unbounded_Fraction IS
|
||||
FUNCTION "/" (Left, Right : Natural) RETURN Unbounded_Fraction IS
|
||||
(To_Unbounded_Integer (Left) / To_Unbounded_Integer (Right));
|
||||
A : ARRAY (0 .. N) OF Unbounded_Fraction;
|
||||
BEGIN
|
||||
FOR M IN 0 .. N LOOP
|
||||
A (M) := 1 / (M + 1);
|
||||
FOR J IN REVERSE 1 .. M LOOP
|
||||
A (J - 1) := (J / 1 ) * (A (J - 1) - A (J));
|
||||
END LOOP;
|
||||
END LOOP;
|
||||
RETURN A (0);
|
||||
END Bernoulli_Number;
|
||||
|
||||
BEGIN
|
||||
FOR I IN 0 .. 60 LOOP
|
||||
IF I MOD 2 = 0 OR I = 1 THEN
|
||||
DECLARE
|
||||
B : Unbounded_Fraction := Bernoulli_Number (I);
|
||||
S : String := Image (GMP.Rationals.Numerator (B));
|
||||
BEGIN
|
||||
Put_Line ("B (" & (IF I < 10 THEN " " ELSE "") & Trim (I'Img, Left)
|
||||
& ")=" & (44 - S'Length) * " " & Image (B));
|
||||
END;
|
||||
END IF;
|
||||
END LOOP;
|
||||
END Main;
|
||||
Loading…
Add table
Add a link
Reference in a new issue