algorytm.org

Implementacja w Ada

Baza Wiedzy
wersja offline serwisu przeznaczona na urządzenia z systemem Android
Darowizny
darowiznaWspomóż rozwój serwisu
Nagłówki RSS
Artykuły
Implementacje
Komentarze
Forum
Bookmarki






Sonda
Implementacji w jakim języku programowania poszukujesz?

Operacja modulo na dużych liczbach - Implementacja w Ada
Ocena użytkownikóww: *****  / 2
SłabyŚwietny
Nadesłany przez Tomasz Lubiński, 13 listopada 2006 01:00
Kod przedstawiony poniżej przedstawia główną część rozwiązania problemu.
Pobierz pełne rozwiązanie.

Jeżeli nie odpowiada Ci sposób formatowania kodu przez autora skorzystaj z pretty printer'a i dostosuj go automatycznie do siebie.

MOD_a.adb:
--
-- Obliczanie modulo z dowolnie duzej liczby
--
-- www.algorytm.org
-- (c)2006 Tomasz Lubinski
--

with Text_IO;
use Text_IO;


procedure MOD_a is

   function modulo(n: String; m: Integer) return Integer is
      result : Integer := 0;
   begin
      for i in n'Range loop
         if result = 0 then
            declare
               x : String := "" & n(i);
            begin
               result := Integer'value(x);
            end;
         else
            declare 
               x : String := Integer'Image(result) & n(i);
            begin
               result := Integer'value(x);
            end;               
         end if;
         result := result mod m;
      end loop;
      return result;
   end;
   
begin

   -- 510007547061111400 mod 97 = 36
	Put_Line("510007547061111400 mod 97 = " & Integer'Image(modulo("510007547061111400", 97)));

   -- 1295302 mod 7 = 1
	Put_Line("1295302 mod 7 = " & Integer'Image(modulo("1295302", 7)));

end;
Dodaj komentarz