Duda potencias en C

Iniciado por koffu9, 2 Noviembre 2018, 19:01 PM

0 Miembros y 1 Visitante están viendo este tema.

koffu9

Buenas. tengo una duda y es que necesito hacer una practica y me piden elevar un número x a n sin utilizar la librería math.h . El problema no es hacer esto sin la librería sino que lo tengo que hacer con un bucle no lineal de manera iterativa.


void PotCuadradosIt (int x, int n)
{
   int xaux, naux, i, sol;
   
   if(n%2==0)
   {
      xaux=x*x;
      naux=n/2;
      sol=xaux;
      
      for(i=1;i<naux;i++)
      {
         sol*=xaux;
      }
   }
}
Este es el programa pero no puedo utilizar este for ya que es un ciclo lineal, y tengo que hacerlo si o si de forma iterativa.
Gracias y un saludo

ivancea96

n^0 == 1
n^1 == n
n^m == n * n^(m-1)

Esa es la lógica de las potencias con números naturales. Como ves, es recursiva cuando la potencia es mayor que 1. De ahí, la función a hacer es parecida...

koffu9

Cita de: ivancea96 en  3 Noviembre 2018, 16:16 PM
n^0 == 1
n^1 == n
n^m == n * n^(m-1)

Esa es la lógica de las potencias con números naturales. Como ves, es recursiva cuando la potencia es mayor que 1. De ahí, la función a hacer es parecida...

No es exactamente la respuesta que buscaba pero si que me ha servido al menos para hacerlo de forma recursiva, muchas gracias porque me ha ayudado mucho. :)