• 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

0 głosów
1,334 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 200 wizyt
pytanie zadane 28 stycznia 2016 w C i C++ przez JKluseczka Obywatel (1,430 p.)
+1 głos
2 odpowiedzi 2,054 wizyt
+1 głos
2 odpowiedzi 841 wizyt
pytanie zadane 30 października 2015 w C i C++ przez macik1423 Początkujący (480 p.)

93,695 zapytań

142,613 odpowiedzi

323,225 komentarzy

63,227 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

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...