• 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

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

92,762 zapytań

141,686 odpowiedzi

320,499 komentarzy

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

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!

...