Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 3 odgovora
  • 2.474 pregleda

Najnovija ↓

racunanje sa velikim brojevima 08.06.2012. u 10:18 · pre 175 meseci #1
Zadatak je da se napravi funkcija koja kontrolise broj tekuceg racuna prilikom unosa, to je kontrola po modulu 97. Na prvi pogleda trivijalno, podeliti broj sa 97 i naci ostatak deljenja. Problem je sto se deli 18-cifreni broj i tu ima problema. Ono sto lepo radi je do 15 cifara, vise od toga je problem. Video sam da ima resenja u excelu i slicnim, ali meni treba za clipper.

Ima li neko resenje za ovo? Jednom davno sam video da ima, pretrazujem internet ali ne nalazim

Pozdrav
Potpis
Pomozite Micro$oftu u borbi protiv piraterije, poklonite prijatelju Linux
Re: racunanje sa velikim brojevima 08.06.2012. u 10:44 · pre 175 meseci #2
Iskoristi osobinu mod funkcije:

mod(a*b,m)=mod(mod(a,m)*mod(b,m))

Na primer, mod(100,97)=3, mod(1000,97)=mod(10*100,97)=mod(10*3,97)=30
mod(1000*1000,97)=mod(30*30,97)

Nađi funkcije mod97 za brojeve 1, 10, ..., 10^{17} pa onda sa tim faktorima množi cifre na odgovorajućim mestima u broju računa, saberi i opet nađi mod.
Re: racunanje sa velikim brojevima 08.06.2012. u 11:25 · pre 175 meseci #3
Code:
int mod(const char digits[], int size, int m)
{
    int result = 0;
    
    for (int i = 0; i < size; ++i) {
        result *= 10;
        result += digits[i] - '0';
        result %= m;
    }

    return result;
}


I sad to lepo pozoveš sa

Code:
int m = mod(digits, 18, 97)
Potpis
Nije bitno koji su zaključci izvučeni, već kako se do njih došlo.
Re: racunanje sa velikim brojevima 08.06.2012. u 17:09 · pre 175 meseci #4
Hvala,
ako nekom treba postavicu clipper kod
Potpis
Pomozite Micro$oftu u borbi protiv piraterije, poklonite prijatelju Linux
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme