[DUVIDA] Calcular Potencia sem usar pow

[b]Preciso criar um metodo que receba x e y e retorne x elevao a y sem utilizar o metodo pow. Sou bem iniciante em java, comecei a criar mas não sei se está certo e estou agarrada para fazer a chamada do método criado.

Se alguem puder me ajudar, fico agradecida![/b]

[code]package pkgExercicio1;

public class CalculaPotencia {
private int base;
private int expoente;

public CalculaPotencia(int x, int y){
	base = x;
	expoente = y;
}

public int Potencia (int xx, int yy){
	int resultado = 0;
	for(int i=0; i<=yy; i++){
		resultado*=xx;
	}
	return resultado;
}

public void CalculaResultado(int result){
	
	
}

}
[/code]

Você pode fazer dessa forma:

public void testPotencia(int base, int expoente) {
	int resultado= 1;
		
	for (int i = 0 ; i < expoente ; i++) {
		resultado *= base;
	}
	System.out.println(resultado);
}

Espero ter ajudado.

Vou testar dessa forma para ve rse da certinho dentro do que to querendo… Obrigada!

A única diferença significativa entre os dois códigos é que ele inicou resultado com 1 e não com 0. Isso pq 0 é o elemento nulo da multiplicação (qualquer coisa * 0 = 0).
E claro, no fato dele ter dado nomes mais significativos às variáveis.

Consegui resolver da seguinte forma:

Arquivo 1

[code]package pkgExercicio1;

public class CalculaPotencia {
//private int base;
//private int expoente;

public int Potencia (int xx, int yy){
	int resultado = 0;
	if (yy==0){
		resultado = 1;
	}
	else
		for(int i=0; i<=yy; i++){
			resultado = xx;
			resultado*=xx;
		}
	return resultado;
}

}
[/code]

Arquivo 2

[code]package pkgExercicio1;

public class testaPotencia {

public static void main(String[] args) {
	CalculaPotencia c = new CalculaPotencia ();
	c.Potencia(3,2);
	System.out.println(c.Potencia(3,2));

}

}
[/code]

If you wanna see how depth the rabbit hole goes:
http://mathforum.org/library/drmath/view/55896.html

Esse link ensina a fazer com expoentes fracionários.

Se quiser ir mais punk, pode procurar a solução com logs que ele cita.

[quote=ViniGodoy]A única diferença significativa entre os dois códigos é que ele inicou resultado com 1 e não com 0. Isso pq 0 é o elemento nulo da multiplicação (qualquer coisa * 0 = 0).
E claro, no fato dele ter dado nomes mais significativos às variáveis.[/quote]

[b]Essa idéia de renomear as variáveis eu vou usar…
Vou trocar por nomes mais fáceis, fica melhor mesmo!

Obrigada[/b]