Spore liczby, i ich zapis w notacji nautkowej

0

Fabułę skąd się wziął problem pominę, może w skrócie, uczę się matmy wiążąc to z programowaniem (dzięki temu się nie zniechęcam ; D)

otóż chcę podnieść 2012 do potęgi 1024, oczywiście przekraczam zakres zmiennej (wywala "inf", więc chyba w tym problem), ale "da się", bo kochany windowsowy kalkulator takie coś liczy (wynik zwraca jako, np. 8,2233...0221e+3382)

Niestety zapomniałem jak owy zapis się nazywa, więc korzystanie z googli było by nieco trudniejsze, a wątpię, by mi znalazło odpowiedź na to co tu piszę :)

Jak wywołać taki zapis w C++?

W sumie ciekawe, że zakres zmiennej nie obejmie takiej liczby, ale skoro komputer potrafi ją tak przedstawić, to jednak jakimś sposobem to liczy.

Niestety pewnie kolejnym problemem będzie operowanie na takim zapisie za pomocą funkcji z math.h, ale jeszcze pewien nie jestem :)

Jakieś wskazówki? :)

Edit: W googlach widzę jak przedstawić owy zapis w wywołaniu coutem, ale jak np chcę dodawać takie liczby? Głównie widzę problemy jak zamienić naukową w zwykłą formę, a ja chcę właśnie na odwrót

2

Ale co ma wg ciebie jedno z drugim wspólnego? Kalkulator windowsowy potrafi takie rzeczy liczyć, to fakt. Ale nikt nie powiedział że liczy to na zwykłych zmiennych liczbowych! Lekcja na dziś: mnożenie pisemne.
A to "2012 do potęgi 1024" wygląda mi na zadanie z jakiegoś konkursu matematycznego z serii "jaka będzie ostatnia cyfra" i zapewniam cię że do tego trzeba użyć głowy a nie liczyć na pałę.

1

A zapomnij o jakiś notacjach naukowych.

  1. Duże liczby przechowujesz tekstowo w ich reprezentacji dziesiętnej - jako "napis" albo w tablicy w podstawie równej wielkości typu jej komórki, czyli przykładowo w tablicy bajtów, gdzie liczba będzie miała podstawę 256.
  2. Potęgowanie zrealizujesz za pomocą algorytmu szybkiego potęgowania, a same mnożenia tak jak na kartce - metodą "pod kreską".

3? No i mam wrażenie, że Shalom z tym konkursem matematycznym ma rację :).

0

Nieee to nie konkurs matematyczny :D

Takie zadanko jak wyznaczenie (2000^4000)%700

Ok wezmę sobie wasze rady do serca (a może lepiej do mózgu ^^), i popracuję w ten sposób jutro

Dzięki :)

Edit: Kurcze tylko 1 odpowiedź można zaznaczyć jako zaakceptowaną, rzucę monetą, obydwie są dobre :P

3

(2000$4000)%700 = (20$4000)%7 * 100 = (6$4000)%7 * 100 = (((6$2)%7)$2000)%7 * 100 = (1$2000)%7 * 100 = 1 * 100 = 100
gdzie $ to potęgowanie - kojot coś knocił z normalnym znakiem

0

vlong

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