Avatar billede sievers Nybegynder
08. marts 2009 - 11:53 Der er 6 kommentarer og
1 løsning

Udskirve 10^1000

Jeg vil gerne kunne udskrive f.eks. 10^1000 i c++ og har i den forbindelse installeret biblioteket GMP. Problemet er at jeg ikke kan få det til at være præcist nok eller overhovedet få det udskrevet. Den vil gerne udskrive 10^100 men den er kun præcis på de første 16 cifrer, men f.eks. 10^400 vil den ikke udskrive. Burde det ikke være muligt med GMP og i så fald hvilken datatype skal jeg burge fra GMP?
Avatar billede arne_v Ekspert
08. marts 2009 - 16:04 #1
Det burde være muligt.

Bruger du mpz_t eller mpz_class eller mpf_t eller mpf_class ?
Avatar billede sievers Nybegynder
08. marts 2009 - 16:19 #2
Jeg har brugt mpz_class.
Avatar billede arne_v Ekspert
08. marts 2009 - 17:06 #3
#include <iostream>

using namespace std;

#include <gmpxx.h>

int main()
{
    mpz_class powten(1);
    for(int i = 0; i < 1000; i++) powten *= 10;
    cout << powten << endl;
    return 0;
}

udskriver:

10000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000

(jeg har ikke talt antal nuller, men det ser da ikke helt skævt ud)
Avatar billede sievers Nybegynder
08. marts 2009 - 17:39 #4
Ja det virkede perfekt. Men man er nødt til at skrive mpz_class a("værdi"), når man tilegner en værdi til variablen? Man kan ikke skrive mpz_class a = "værdi"?
Avatar billede arne_v Ekspert
08. marts 2009 - 19:43 #5
Sikkert. Prøv det.
Avatar billede sievers Nybegynder
08. marts 2009 - 20:26 #6
Jo det ser ud til at virke også. Jeg siger mange tak for hjælpen.
Avatar billede arne_v Ekspert
09. marts 2009 - 17:42 #7
saa smider jeg et svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester