Funkcja x^n (sposób iteracyjny) – prośba o wytłumaczenie

0

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

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:)

1 użytkowników online, w tym zalogowanych: 0, gości: 1