Diskuze: Existuje datovy typ pro cislo co ma milion cifer?

C++ C a C++ Existuje datovy typ pro cislo co ma milion cifer?

Avatar
honza.b4
Člen
Avatar
honza.b4:

viz. nadpis.

 
Odpovědět 6.4.2014 0:16
Avatar
coells
Redaktor
Avatar
Odpovídá na honza.b4
coells:

Používal jsem https://gmplib.org/

BigInteger (pokud v C++ je) určitě není dobrá volba pro 106 cifer.

 
Nahoru Odpovědět 6.4.2014 0:27
Avatar
honza.b4
Člen
Avatar
Odpovídá na coells
honza.b4:

Omlouvam se. Jsem zacatecnik. Mohl by jsi mi to prosim ukazat na prikladu jak by vypadala deklarace?

 
Nahoru Odpovědět 6.4.2014 0:35
Avatar
coells
Redaktor
Avatar
Odpovídá na honza.b4
coells:

Není za co se omlouvat, každý nějak začíná.
viz https://gmplib.org/…n-6.0.0a.pdf
kapitola 5 obsahuje hezký úvod.

 
Nahoru Odpovědět  +2 6.4.2014 0:51
Avatar
honza.b4
Člen
Avatar
Odpovídá na coells
honza.b4:

Pomuzes mi prosim tohle prepsat, aby to fungovalo? V te dokumentaci to nemuzu najit.

mpz_t vysledek;
mpz_init(vysledek);
vysledek += cisla[i]*pomoc;
 
Nahoru Odpovědět 6.4.2014 11:28
Avatar
coells
Redaktor
Avatar
Odpovídá na honza.b4
coells:

viz kapitola 5.5

mpz_t vysledek;
mpz_init(vysledek);
// pokud cisla[i] a pomoc jsou inty, pak je staci pretypovat na unsigned long (kvuli preteceni)
mpz_add(vysledek, vysledek, cisla[i] * pomoc);

Případně viz kapitola 12, pokud je to C++

mpz_class a, b, c;

a = 0;
b = cisla[i];
c = pomoc;
a += b * c;
 
Nahoru Odpovědět 6.4.2014 11:55
Avatar
honza.b4
Člen
Avatar
Odpovídá na coells
honza.b4:

posledni veci co nevim :-D

mpz_t vysledek;
mpz_init(vysledek);
vysledek /= 10;

if((vysledek % 9) == 0){
prikazy;
}
Editováno 6.4.2014 14:04
 
Nahoru Odpovědět 6.4.2014 14:00
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 8 zpráv z 8.