Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: koffu9 en 2 Noviembre 2018, 19:01 pm



Título: Duda potencias en C
Publicado por: koffu9 en 2 Noviembre 2018, 19:01 pm
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


Título: Re: Duda potencias en C
Publicado por: 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...


Título: Re: Duda potencias en C
Publicado por: koffu9 en 3 Noviembre 2018, 19:55 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. :)