reprezentacja du?żych liczb, silnia z 200

0

Mam do napisania programik który ma liczyć silnie z 200.

  1. w jaki sposób najlepiej reprezentować tak duże liczby ?
  2. jak wykonywac na tych wielkich liczbach operacje mnożenia/dodawania
    Z góry wielkie dzieki za wszelkie sugestie i pomoc. Jeśli ktoś pisał już taki program to proszę o uwagi gdzie można napotkać problemy itp.
    Jeśli ktoś bedzie podawał jakieś przykłady to prosze w C lub psedo-kodzie.
    Pozdrawiam
0

Na tak duzych liczbach chyba najlepiej wykorzystac do tego celu tablice.

0

Jak napisał Anonim musisz chyba zrobić tablice charów do przechowywania tych liczb ( bo char zajmuje najmniej z podst typów ) . Z dodawaniem nie będzie problemu , tak jak uczyli w szkole :
123
+478

601
i na takiej zasadzie idziesz od końca po wszystkich elementach tablicy . Oczywiście zmienna pomocnicza do przechowywania przeniesienia .
A co do mnożenia to jest ono odpowiednią ilościa dodawania tej samej liczby , np jak mamy : 245 ( czyli 23*4 * 5) =120
teraz suma=24
temp=suma
mnoznik=5
for(i=1;i

0

Wykorzystując dodawanie do obliczenia iloczynu liczb jest dosyć proste choć czasochłonne, i jak określa to mój wykładowca jest to sposób "dla mięczaków" :-8 Zrobie ten programik na dodawaniu ... ale chciałbym jednak mnożyć liczby zawarte w dwóch tablicach. Tablice te będą olbrzymie !! (200! to duża liczba) Potrzebuję więc sposobu na mnożenie dwóch tablic o dowolnych rozmiarach ... algorytm musi badać ilość znaków zawartych w tablicy (tablica jest na sztywno 32 kb) Staram się wykombinować algorytm który działa jak mnożenie pisemne ale jakoś średnio mi to idzie... jakieś sugestie ?

0
  1. "Art of Assembly Language" jest tam przykład mnożenia dużych liczb. Co prawda w asm, ale opis powinien wystarczyć.
  2. integer_asm.pas na www.torry.net Też w asm, ale może troszkę łatwiej zrozumieć, bo jest w analogiczny sposób jak pisemne robione.
0

Albo algorytm mnożenia chłopów rosyjskich opisany swojego czasu w kapuścianych materiałach ... czyli artykule w dziale "z pogranicza".

0

Kod do dodawania masz w Gorących Tematach - we FreePascalu, ale zawsze :)

0

ten kod we free-pascalu jest dla mnie niezjadliwy .. :-8
a co do dodawania to pojawił się problem w momencie gdy liczby są nierównej długości... wszystko fajnie ale jak pilnować stopień danej liczby ? np. gdy dodaję 987 do 1000 to mi 9 do 1 dodaje ... kurcze te upały mnie wykańczają i nie mogę nic sensownego wymyśleć [stuk]

0

np. gdy dodaję 987 do 1000 to mi 9 do 1 dodaje

Dodawaj od końca (od jedności). Czyżbyś na to nie wpadł? :-P

0

a co do dodawania to pojawił się problem w momencie gdy liczby są nierównej długości... wszystko fajnie ale jak pilnować stopień danej liczby ? np. gdy dodaję 987 do 1000 to mi 9 do 1 dodaje ...

:)
ja od początku wyobrażałem sobie to tak , że te liczby będą przechowywane w tablicy od tyłu , dzięki temu wszystko się bedzie łatwiej robiło , np:
t1:
00001234
t2:
00022223
to jest dla tablicy 8-elementowej , noi oczywiście dodaje sie je zaczynając od ostatniego elementu w tablicy .

1 użytkowników online, w tym zalogowanych: 0, gości: 1