Witam,
Mam do napisanie program, ktory bedzie wykonywal podstawowe dzialania (+ - * /) na dowolnie duzych, calkowitych liczbach. Wobec powyzszego bylbym wdzieczny za jakiekolwiek sugestie
prosze bardzo: BigInteger i BigDecimal
sorry zapomnialem dopisac ze nie moge kozystac z tych klas :D
Czyzby jedno z tych inteligentnych zadan na cwiczenia "napisz cos ale nie korzystaj z klasy xx" co oznacza implementacje tej klasy.
Coz, zobacz jak sa napisane te klasy i zrob cos podobnego .
Cześć.
Kiedyś miałem podobny problem w C++.
Zrobiłem to "w słupku" liczby były wewnątrz stringami.
Po prostu dodawanie i odejmowanie zrobiłem tak, jak w słupku, czyli i-tą pozycję ze stringa a dodałem do i-tej ze stringa b plus nadmiar poprzedniej pozycji, analogicznie odejmowanie i to działało świetnie, nie pamiętam, czy udało i się zrobić dzielenie i mnożenie... ale pewnie da się je analogicznie :)
Pozdrawiam.
watpie zeby dzialalo swietnie, skoro dodawanie dwoch liczb sprowadziles do grzebania w stringach
Luno napisał(a)
watpie zeby dzialalo swietnie, skoro dodawanie dwoch liczb sprowadziles do grzebania w stringach
Wiesz, no ja to napisałem i z tego co pamiętam, a było to z 3 lata temu, to działało dodawanie i odejmowanie. Mnożenie i dzielenie natomiast już nie (nie dokończyłem tych funkcjonalności).
Natomiast powiedz mi dlaczego uważasz, że nie powinno działać?
Zasada działania jest podobna do sumatora n-bitowego. Nic trudnego.
Wystarczy zobaczyć źródła BigIntegera:
http://kickjava.com/src/java/math/BigInteger.java.htm
Zaimplementuj tak samo, czyli tablica intów + int znaku.
Prawie juz jest wszystko znaczy robie tak jak sie wykonuje te dzialania pisemnie.
tylko mam problem z dzieleniem bo mam dwie tablice int i zadnego pomyslu co z nimi zrobic :-(
przecieŻ dzielenie to jest odejmowanie wielokrotne
@Luno, niby masz rację, ale wykonywanie dzielenia
9999999999999999999999999999999999999999999999/2
lub 999999999999999999999999999999999999999999999999999999999999999999999/1
przez wielokrotne odejmowanie nie wydaje się sensowne.
A co w sytuacji dzielenia mniejszej liczby przez wieksza??
To jest proste, wynik wynosi 0.
bogdans napisał(a)
To jest proste, wynik wynosi 0.
ty chyba podstawowki nie skonczyles
Kamil napisał(a)
bogdans napisał(a)
To jest proste, wynik wynosi 0.
ty chyba podstawowki nie skonczyles
A ty chyba nie posiadłeś umiejętności czytania ze zrozumieniem tego co sam napisałeś. Liczby mają być CAŁKOWITE. Dzielenie mniejszej liczby całkowitej przez większą daje zawsze zero. A to, że reszta jest równa mniejszej liczbie to inna sprawa. A jak zamierzasz obrażać osobę, która chce Ci pomóc, to nie wiem po co się pytasz.
Olamagato napisał(a)
Kamil napisał(a)
bogdans napisał(a)
To jest proste, wynik wynosi 0.
ty chyba podstawowki nie skonczyles
A ty chyba nie posiadłeś umiejętności czytania ze zrozumieniem tego co sam napisałeś. Liczby mają być CAŁKOWITE. Dzielenie mniejszej liczby całkowitej przez większą daje zawsze zero. A to, że reszta jest równa mniejszej liczbie to inna sprawa. A jak zamierzasz obrażać osobę, która chce Ci pomóc, to nie wiem po co się pytasz.</quote
Przeciez przy dzieleniu dwoch calkowitych liczb nie musisz w wyniku otwrzymac liczby calkowitej !!
12/5 nie jest liczba calkowita mimo ze zarowno dzielna jak i dzielnik takimi sa
Jesteś niewychowany i niedouczony. Mimo to raz jeszcze Ci odpowiem: 12/5 jest w Javie liczbą całkowitą.
Dzielenie dowolnych liczb typu byte,int.long, BigInteger daje wynik całkowity.