Mam jedno małe pytanko do bardziej ogarniętych w C++ niż ja.
Czy jest jakiś sens w używaniu do obliczania silni w obiekcie array typu long double? Uważam to za bezsensowne, ponieważ jako że silnia wywodzi się z liczb naturalnych, każda z silni przyjmie postać liczby naturalnej. Typ zmiennoprzecinkowy nie ma racji bytu.
A dlaczego pytam? Ponieważ w książce mam zadanie, aby wykorzystać do tego long double i znaleźć wartość 100!. Być może chodzi tu o wykorzystanie notacji wykładniczej, hm?
@Tobruk: double przechowuje inaczej liczby - w postaci wykladniczej (cecha i mantysa) - wiec mozna przechowywac wieksze liczby, ale niedokladnie. Byc moze to byl powod.
@Tobruk: wydziel funkcje z main'a tak, żeby było wiadomo co się dzieje: wyliczanie średniej w osobnej funkcji, inicjalizacja factorials osobno itp. Poza tym niepisana zasada w C/C++ mówi, że stałe (const int Arrsize) nazywa się z dużej litery. Unikaj też skrótów i ogólników ('Arrsize' jest zbyt ogólną nazwą, znacznie lepiej 'FACTORIALS_COUNT').
@Tobruk: Dość późno odpowiadam, sorry. Po pierwsze: liczenie silni wydziel do osobnej funkcji. Po drugie: po co używasz tablicy? Przecież zwykła pętla w zupełności wystarczy.
PERFEKCYJNA DZIEWCZYNA ? Faceci jak ona wam sie podoba ? Kobiety, co myslicie o takim stylu ? Te brwi, usta, rzesy, makijaz, piersy itd. Ocencie jej wyglad
Z racji że dziś wychodzę za mąż to małe #rozdajo. Pół litra wódeczki będzie rozlosowane wśród plusujących! Wysyłka na mój koszt ( ͡°͜ʖ͡°) #slub #wesele
Czy jest jakiś sens w używaniu do obliczania silni w obiekcie array typu long double? Uważam to za bezsensowne, ponieważ jako że silnia wywodzi się z liczb naturalnych, każda z silni przyjmie postać liczby naturalnej. Typ zmiennoprzecinkowy nie ma racji bytu.
A dlaczego pytam? Ponieważ w książce mam zadanie, aby wykorzystać do tego long double i znaleźć wartość 100!. Być może chodzi tu o wykorzystanie notacji wykładniczej, hm?
Dziękuję za wskazówki.
#cpp
a long long 64-bitowy ~ 9 * 10^18.
100! jest rzędu 10^157, więc w long longu się nie zmieści, a w long double tak (ale niedokładnie)
Normalnie powinno się użyć do tego binumów czy bigintów, ale jako ćw. w książce by to nie miało zbytniego sensu.
std::cout << "100! = " << wynik << " * 10^15" << std::endl
a * 0.5^b
, a nie
a
http://pastebin.com/iypZY9ge
int title(void);
na
Poza tym spoko ; ).
http://ideone.com/PKbj7X – liczy silnię dla podanego n dopóki n nie jest ujemne.