algorytm.org

Implementacja w C/C++

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 C/C++
Ocena użytkownikóww: *****  / 4
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.c:
//
// Obliczanie modulo z dowolnie duzej liczby
//
// www.algorytm.org
// (c)2006 Tomasz Lubinski
//

#include "stdio.h"
#include "stdlib.h"

// calculates n mod m
int modulo(char *n, int m)
{
   int i;
   int result = 0;
   char x[20];
   char s[2];
   s[1] = 0;
   x[0] = 0;

   for (i=0; i<strlen(n); i++)
   {
      s[0] = n[i];
      strcat(x, s);
      result = atoi(x);
      result %= m;
      if (result == x)
      {
         x = "";
      }
      else
      {
         itoa(result, x, 10);
      }
   }

   return result;
}

int main(void)
{

   //510007547061111400 mod 97 = 36
   printf("510007547061111400 mod 97 = %d\n", modulo("510007547061111400", 97));

   //1295302 mod 7 = 1
   printf("1295302 mod 7 = %d\n", modulo("1295302", 7));

   return 0;
}
Dodaj komentarz