• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Baardzo duże liczby w C++

Mały hosting, OGROMNE możliwości
0 głosów
7,098 wizyt
pytanie zadane 8 lutego 2017 w C i C++ przez maciek061 Gaduła (4,490 p.)
Witam, mam problem.

Potrzebuję napisać program w C++, który będzie pracował na bardzo dużych liczbach całkowitych (większych niż zasięg long double). Natknąłem się w internecie na takie rozwiązanie, że gdy liczba zbliża się do granicy zasięgu zmiennej, to rozbija się ją na kilka mniejszych i zapisuje w kilku zmiennych, a potem jakoś sumuje, ale nie mam pojęcia jak się do tego zabrać. Proszę o pomoc, chociaż nakierowanie. A może zrobić to w zupełnie inny sposób?

Z góry dzięki.

2 odpowiedzi

0 głosów
odpowiedź 8 lutego 2017 przez 10kw10 Pasjonat (22,880 p.)
Pracowal tzn co z nimi robil ?

Mozesz zapisac do stringa lub tablicy char i dodawac je pisemnie np.
komentarz 8 lutego 2017 przez maciek061 Gaduła (4,490 p.)
Głównie brał kolejne liczby i sprawdzał czy są takim szczególnym rodzajem liczb pierwszych, ale niewykluczone, że wykorzystam sposób do innych celów w przyszłych projektach.

Ale jak dodawać liczby, które są zapisane jako znaki?
komentarz 8 lutego 2017 przez 10kw10 Pasjonat (22,880 p.)
Bardzo prosto. Przyklad:

String a="1",b="2";

Cout<<(int)a[0]%48+(int)b[0]%48;

Powinno byc 3.

%48 dlatego ze 0 w ascii to 48.
komentarz 8 lutego 2017 przez maciek061 Gaduła (4,490 p.)
No dobra ale co jak liczby są większe od int czy long long int
komentarz 8 lutego 2017 przez 10kw10 Pasjonat (22,880 p.)
Yy nie rozumiem.

Bierzesz jeden znak, rzutujesz go na inta (jego wartość bd od 48 do 57, dzielisz %48 i masz cyfre. Nie ma znaczenia jak duża masz liczbe.
komentarz 8 lutego 2017 przez maciek061 Gaduła (4,490 p.)
No tak, nie skumałem. Spróbuję to zaimplementować.

Dzięki za pomoc i poświęcony czas.
0 głosów
odpowiedź 8 lutego 2017 przez Ehlert Ekspert (215,210 p.)

Możesz użyć unsigned long long od 0 do 18,446,744,073,709,551,615. Alternatywą może być własna klasa liczbowa z liczbą jako string. Ale to przeciążanie operatorów i dużo zabawy z działaniami pisemnymi smiley

komentarz 8 lutego 2017 przez maciek061 Gaduła (4,490 p.)
Czyli generalnie kupa roboty?
komentarz 8 lutego 2017 przez Ehlert Ekspert (215,210 p.)

Podobne pytania

0 głosów
2 odpowiedzi 1,470 wizyt
pytanie zadane 9 maja 2018 w C i C++ przez koniak20 Początkujący (390 p.)
0 głosów
3 odpowiedzi 2,843 wizyt
pytanie zadane 28 marca 2017 w C i C++ przez Kenzy Obywatel (1,160 p.)
0 głosów
1 odpowiedź 1,807 wizyt
pytanie zadane 9 kwietnia 2017 w C i C++ przez maciek259 Nowicjusz (240 p.)

93,715 zapytań

142,629 odpowiedzi

323,261 komentarzy

63,258 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...