Problemas com potencia sem Math.pow

3 respostas
F

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));
		
	}
	
}

3 Respostas

Foxlol
faoli:
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));
		
	}
	
}

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));
		
	}
	
}
D

Vc esqueceu de multiplicar e ir somando, ficaria assim:

total = total + (n1*n2);

sergiotaborda

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.

Criado 30 de agosto de 2008
Ultima resposta 30 de ago. de 2008
Respostas 3
Participantes 4