Cześć mam do napisania funkcję x^n w sposób iteracyjny w c++, czyli chyba przez pętle i nie wiem jak się do tego zabrać. Jakby mógł ktoś pomóc byłoby super, Dzięki!
0
0
x^n
= x*x*x*x
n-razy.
Więc robisz pętle która powtarza się n razy i mnożysz x przez siebie w pętli.
1
Proszę bardzo :) 2 minuty klepania.
#include <iostream>
using namespace std;
int n_pot(int x,int n)
{
int wynik=1;
for(int i=0;i<n;i++)
{
wynik*=x;
}
return wynik;
}
int main() {
cout<<n_pot(2,3);
return 0;
}
0
Nie napisałeś czy n
może być ujemne. Jeśli tak, to kod @profesorek_96 trzeba mocno rozbudować. Zmiany są potrzebne również wtedy gdy x
może być zmiennoprzecinkowe.
1
Opis jest tutaj: https://pl.wikipedia.org/wiki/Algorytm_szybkiego_pot%C4%99gowania , a tak to będzie w c++:
int square(int x){ return x * x;}
int even(int x) {return x % 2 == 0;}
int sq_exp(int x, unsigned n){
/* Zakładamy najprostrzą wersję: n >= 0*/
if (n == 0)
return 1;
if (! even(n))
return x * square((sq_exp(x, (n - 1) / 2)));
return square(sq_exp(x, n / 2));
}
Założyłeś trzy wątki w tym samym temacie, w różnych językach! W tym czasie Jakyś chciał, to Przepisałbyś ten algorytm z Wikipedii metodą prób i błędów:)