Etiquetas

sábado, 1 de enero de 2011

Algoritmo para elevar potencias

Buenas, hoy les traigo el algoritmo que prometí hace bastante tiempo, pero en Python en vez de en C# (es fácilmente extrapolable, solamente hay que cambiar las diferencias sintácticas), porque me parece que Python es más rápido y limpio para scripts pequeños, como este.

La función en cuestión sirve para, una vez dados el número y la potencia, imprimir el resultado.

#-------------------------------------------------------------------------------
# Name:        module2
# Purpose:
#
# Author:      Kerith
#
# Created:     01/01/2011
# Copyright:   (c) Kerith 2011
# Licence:     
#-------------------------------------------------------------------------------
#!/usr/bin/env python
import sys

def ElevarPotencia(numero, potencia):
    num_base = numero
    contador = 0
    if potencia != 0:
        while contador < potencia:
            numero *= num_base
            contador += 1
    else:
        numero = 1
    return numero

def main():
    numero = int(raw_input('Numero: '))
    potencia = int(raw_input('Potencia: '))
# A partir de aqui es prescindible
    resultado = ElevarPotencia(numero, potencia)
    print resultado
# Hasta aqui ^

if __name__ == '__main__':
main()

Vale, si, es posible hacerlo más corto con un bucle 'for' o una función recursiva, pero tampoco esta tan mal, no?

Básicamente la función ElevarPotencia() dice (línea por línea):
"crea una variable num_base, que tenga el mismo valor que numero."
"crea un contador, que empiece desde cero"
"si potencia es diferente a 0"
      "mientras contador sea menor que potencia"
           " numero = numero*num_base"
           " añade 1 al contador"
"sino, numero = 1"
"devuelve numero"

No hay comentarios:

Publicar un comentario