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

question-closed Funkcja pow() nie działa właściwie? 5 do potęgi 3 = 124

Aruba Cloud - Virtual Private Server VPS
0 głosów
1,199 wizyt
pytanie zadane 26 grudnia 2015 w C i C++ przez John Doe Obywatel (1,720 p.)
zamknięte 26 grudnia 2015 przez John Doe

Otóż istnieje taki kod, sprawdzający czy liczba jest narcystyczną (Armstronga).

Opis: pierwsza pętla sprawdza ilość cyfr w liczbie, a więc wyznacza potęgę do której podnosimy kolejne cyfry. W drugiej pętli wyznaczamy cyfrę jedności, podnosimy ją do uprzednio wyznaczonej potęgi i dodajemy do zmiennej przechowującej sumę. Następnie skracamy liczbę o jedną cyfrę (n1 /= 10) i proces powtarzamy, dopóki n1 > 0.

Logiczne, a przynajmniej takie być powinno. Jednak z tego co można zauważyć, przy podnoszeniu cyfry 5 do potęgi 3, funkcja pow() zwraca wartość 124 - za każdym razem.

Dowód: http://goo.gl/lHWXQ3

what the heck, forumowicze? :)

#include <iostream>
#include <cmath>

using namespace std;

int main()
{
    int n, n1, rem, power = 0, num = 0;
    n = n1 = 153;

    while(n1 > 0)
    {
        ++power;
        n1 /= 10;
    }

    n1 = n;

    while(n1 > 0)
    {
        rem = n1%10;
        cout << rem << "^" << power << " = ";
        rem = pow(rem,power);
        cout << rem << endl;
        num += rem;
        n1 /= 10;
    }

    cout << num;
}

 

2 odpowiedzi

+2 głosów
odpowiedź 26 grudnia 2015 przez Czort Nałogowiec (32,500 p.)
komentarz 26 grudnia 2015 przez John Doe Obywatel (1,720 p.)
Dziękuję i przepraszam za dublowanie tematu.
+1 głos
odpowiedź 26 grudnia 2015 przez jeremus Maniak (59,720 p.)
zmień typ danych na double
poniżej definicja funkcji :

double pow (double base, double exponent);

 

Podobne pytania

0 głosów
0 odpowiedzi 147 wizyt
pytanie zadane 28 stycznia 2016 w C i C++ przez JKluseczka Obywatel (1,430 p.)
+1 głos
2 odpowiedzi 1,858 wizyt
+1 głos
2 odpowiedzi 723 wizyt
pytanie zadane 30 października 2015 w C i C++ przez macik1423 Początkujący (480 p.)

93,331 zapytań

142,323 odpowiedzi

322,400 komentarzy

62,666 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

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...