GRY-Online.pl --> Archiwum Forum

Mnożenie dużych liczb (C++) - problem.

28.04.2010
19:16
[1]

mackof [ Prypiat ]

Mnożenie dużych liczb (C++) - problem.

Chciałem zrealizować mnożenie w stringach, jednak niektóre wyniki są złe. (np dla 15 i 15). Byłbym wdzięczny, jeżeli ktoś znajdzie błąd.
Oto kod:



Na początku podaję liczbę testów, następnie po kolei liczby do przemnożenia.

29.04.2010
10:48
smile
[2]

redan [ Wiking ]

pytanie dlaczego robisz to taką metodą. nie łatwiej przekonwertować string na double i potem wykonać operację matematyczną, a następnie znowu przekonwertować wynik na string?

trzeba dołączyć bibliotekę "stdlib.h"

string na liczbę:
atof - Convert string to double
atoi - Convert string to integer
strtod - Convert string to double

w drugą stronę:
double b = 3.0000;
char s[20];
sprintf(s,"%f",b);


29.04.2010
10:55
[3]

graf_0 [ Nożownik ]

pytanie dlaczego robisz to taką metodą.

Ja bym zgadywał że jest to np. wprowadzenie do mnożenia wielkich liczb, które w double się nie mieszczą.
To tylko moja uwaga. Co do meritum się nie wypowiadam - za dużo zapomniałem.

29.04.2010
11:11
[4]

reik [ Pretorianin ]

Tu masz problem i kilka gotowych rozwiązań. Po co wynajdywać koło na nowo?



29.04.2010
11:40
[5]

alpha_omega [ Legend ]

Chyba po to, ażeby się czegoś nauczyć. Kopiując gotowe rozwiązania niczego się człowiek nie nauczy.

Tak, czy owak - podejście autora wątku, to po prostu oddanie w kodzie dodawania i mnożenia pisemnego, ale prawdę mówiąc nie chce mi się tego rozkminiać. Po cholerę np. te reversy. Np. w dodawaniu z wystarczyłoby pętlę w drugą stronę puścić i żadnej takiej komplikacji by nie było.

30.04.2010
18:03
[6]

mackof [ Prypiat ]

Przepraszam za opóźnienie, ale po paru godzinach oczekiwania uznałem, że nikt tu nie zajrzy.

redan->duże liczby, czyli większe niż unsigned long long (19 cyfer).
alpha_omega -> reversy są po to, aby móc wygodniej pracować na tablicach. Jeżeli pojadę od tyłu to jeżeli bym chciał dopisywać kolejne cyfry na początek stringa (liczba się wydłuży - to oczywiste), to potrzebny będzie insert, a pracowanie od tylu i na insertach jest bardzo niewygodne.

reik -> napisalem, że na stringach chcę pracować. A w rozwiązaniu przez Ciebie podanym używam struktur + to co napisał alpha_omega

30.04.2010
19:13
[7]

alpha_omega [ Legend ]

mackof --

Masz rację. Nie pomyślałem o tym.

© 2000-2024 GRY-OnLine S.A.