Problemas com potencia sem Math.pow

Bom dia,

Tenho em exercício para calcular a potencia sem usar Math.pow,
não sei oque está errado…

Obrigado

/*Faça um método que receba dois valores (X e Z), o método deverá calcular e imprimir o valor de
Xz (x elevado a z), não deve ser utilizado nenhum método pronto do java, você deverá implementar
toda a lógica para o cálculo.*/
import javax.swing.*;

public class Exe4{
	//metodo para calculo de Potencia
public static int exp(int n1,int n2)   
{
	int i=0, total=0;
	
	while(i<=n2)
	{
			total = n1*n2;	
			i++;
	}
	return total; 
    
}
  
       
	//metodo principal
	public static void main(String args[]){
		//Declaração de Variáveis
		int num1, num2;
		
		//Entrada de Dados do Usuário
		num1 = Integer.parseInt(JOptionPane.showInputDialog("Digite um número"));  
		num2 = Integer.parseInt(JOptionPane.showInputDialog("Digite outro número"));  
		
		//Exibição dos dados
		
		JOptionPane.showMessageDialog(null, exp(num1,num2));
		
	}
	
}

[quote=faoli]Bom dia,

Tenho em exercício para calcular a potencia sem usar Math.pow,
não sei oque está errado…

Obrigado

[code]
/Faça um método que receba dois valores (X e Z), o método deverá calcular e imprimir o valor de
Xz (x elevado a z), não deve ser utilizado nenhum método pronto do java, você deverá implementar
toda a lógica para o cálculo.
/
import javax.swing.*;

public class Exe4{
//metodo para calculo de Potencia
public static int exp(int n1,int n2)
{
int i=0, total=0;

while(i<=n2)
{
		total = n1*n2;	
		i++;
}
return total; 

}

//metodo principal
public static void main(String args[]){
	//Declaração de Variáveis
	int num1, num2;
	
	//Entrada de Dados do Usuário
	num1 = Integer.parseInt(JOptionPane.showInputDialog("Digite um número"));  
	num2 = Integer.parseInt(JOptionPane.showInputDialog("Digite outro número"));  
	
	//Exibição dos dados
	
	JOptionPane.showMessageDialog(null, exp(num1,num2));
	
}

}
[/code][/quote]

Dado que a exponenciação é a multiplicação de uma dada base por ela mesma tantas vezes quanto indicar o expoente:

/*Faça um método que receba dois valores (X e Z), o método deverá calcular e imprimir o valor de
Xz (x elevado a z), não deve ser utilizado nenhum método pronto do java, você deverá implementar
toda a lógica para o cálculo.*/
import javax.swing.*;

public class Exe4{
	//metodo para calculo de Potencia
public static int exp(int n1,int n2)   
{
	int i=0, total=0;
	
	while(i<=n2)
	{
			total += n1*n1;	
			i++;
	}
	return total; 
    
}
  
       
	//metodo principal
	public static void main(String args[]){
		//Declaração de Variáveis
		int num1, num2;
		
		//Entrada de Dados do Usuário
		num1 = Integer.parseInt(JOptionPane.showInputDialog("Digite um número"));  
		num2 = Integer.parseInt(JOptionPane.showInputDialog("Digite outro número"));  
		
		//Exibição dos dados
		
		JOptionPane.showMessageDialog(null, exp(num1,num2));
		
	}
	
}

Vc esqueceu de multiplicar e ir somando, ficaria assim:

total = total + (n1*n2);

Lembrando que qualquer numero elevado a 0 é 1 e que 1 elevando a qualquer expoente é 1
e que n elevado a p significa nnn*n…*n p vezes
temos:

public static int exp(int base,int expoente)   
{
	if (expoente <0 ){
            throw new IllegarArgumentException("Apenas expoentes positivos");
        }

        if (base==1){
          return 1;
        }

       int potencia=1;
	
	for ( int i = 0 ; i < expoente; i++){
             potencia *= base;
        }

	return potencia; 
    
}

Não ha operação de soma.