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

mnożenie pisemne c++

Object Storage Arubacloud
+1 głos
2,278 wizyt
pytanie zadane 15 stycznia 2019 w C i C++ przez Michał Wojtaś Obywatel (1,080 p.)
edycja 15 stycznia 2019 przez Michał Wojtaś
Witam

mam napisać program który potęguje dwie liczby a-wykładnik, b-indeks tylko że cały proces ma się wykonywać poprzez mnożenie pisemne jak zacząć? proszę o pomoc bo mam totalną pustkę.

4 odpowiedzi

+1 głos
odpowiedź 15 stycznia 2019 przez X3h Dyskutant (9,540 p.)
https://ideone.com/5K1LaI

A to mój sposób. Idzie tym policzyć 9999^9999 w 0.38s.
komentarz 16 stycznia 2019 przez Michał Wojtaś Obywatel (1,080 p.)
dziękuję :)
0 głosów
odpowiedź 15 stycznia 2019 przez DragonCoder Nałogowiec (36,500 p.)

Skoro, nie mozesz uzyc funkcji pow (), to nie zostaje nic innego niz petla for.

  • Pytasz o ilosc wykladnik i podstawe.
  • Petla powtarza sie, az do wykladnika potegi
  • W petli robisz

podstawa *= podstawa

i chyba tyle. No bo chyba o to chodzi, jesli nie to przepraszam za zla odpowiedz. Ale nie mam innego pomyslu, na przedstawienie tego pisemnie

 

P.S.

Tytul pytania i tresc sa rozne, popraw to prosze

komentarz 15 stycznia 2019 przez Michał Wojtaś Obywatel (1,080 p.)
no własnie chodzi o jeszcze bardziej zawansowane mnożenie tak jak byś to robił na kartce cyfra jedności *jedności jeżeli wynik>10 0 zostaje a jedynkę przpisujesz. ok poprawię :)
0 głosów
odpowiedź 15 stycznia 2019 przez mkornas Użytkownik (640 p.)
Jeśli dobrze rozumiem to chodzi Ci o własną arytmetykę, gdy wynik jest tak duży, że nie mieści się w żadnym dostępnym typie danych.

Pomysł polega na tym, że liczby wczytujesz jako string, a następnie przenosisz je do tablic, gdzie w każdej komórce będziesz miał oddzielną cyfrę.

Obliczenie całego wyniku polega na przemnożeniu a (wykładnik) razy otrzymany wynik (początkowo ustawiony na 1) przez b (podstawa potęgi).

Proces mnożenia pisemnego wygląda dokładnie tak jak na kartce. Robisz dwa fory po kolejnych indeksach dwóch mnożonych tablic. Mnożysz obie komórki, a wynik tego mnożenia zapisujesz w trzeciej tablicy w indeksie nr indeks1 + indeks2 (pamiętaj żeby cyfra jedności była pod indeksem 0, bo jeśli będzie gdzieś indziej to trzeba będzie korygować miejsce ostatniego indeksu).

Już po całym procesie mnożenia w niektórych komórkach (zazwyczaj pewnie w prawie wszystkich) może się zdarzyć, że wynik jest większy niż 9. Wtedy zostawiasz w tej komórce resztę z dzielenia przez 10, a resztę przedzieloną przez 10 przenosisz do dalszej komórki. Robisz to aż do momentu aż nie będzie nic do przeniesienia.

Na koniec pamiętaj, żeby przenieść wynik z tablicy wynik do jednego z mnożonych czynników i wyzerować tablicę z wynikiem.

Oczywiście jeżeli znasz szybkie potęgowanie to możesz to zaimplementować. Program będzie wtedy działał szybciej. Na początek chyba lepiej jednak napisać zwykłe potęgowanie.
komentarz 15 stycznia 2019 przez Michał Wojtaś Obywatel (1,080 p.)
dziękuję bardzo właśnie chodziło mi o  własną arytmetykę :)
0 głosów
odpowiedź 3 lutego 2020 przez Kmicitz Początkujący (300 p.)
Zapoznaj się z przesunięciem bitów, potęgowanie to rotacja bitowej reprezentacji liczby w lewo, pierwiastkowanie - przeciwnie. Nam, ludziom trudno to zrozumieć, bo liczymy systemem dziesiętnym, w systemie dwójkowym wszystko jest pięć razy prostsze :-)

Podobne pytania

0 głosów
0 odpowiedzi 293 wizyt
pytanie zadane 29 listopada 2021 w Python przez Mefjuuuu Nowicjusz (120 p.)
+1 głos
1 odpowiedź 763 wizyt
pytanie zadane 2 listopada 2017 w JavaScript przez excavelty Bywalec (2,480 p.)
0 głosów
2 odpowiedzi 883 wizyt
pytanie zadane 3 lutego 2020 w C i C++ przez minemoney123 Nowicjusz (140 p.)

92,568 zapytań

141,424 odpowiedzi

319,634 komentarzy

61,956 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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...