You are on page 1of 7

ESPOL

ANALISIS DE ALGORITMO
Y ESTRUCTURA DE
DATOS.
ALGORITMO RECURSIVO PARA INVERTIR UN
NMERO.
TANIA ROSERO RODRIGUEZ.

Anlisis de Algoritmo y
Estructura de Datos.
TEMA: Algoritmo recursivo que permita invertir un nmero.
TANIA ROSERO RODRIGUEZ. PROYECTO.

CONCEPTOS GENERALES.

QUE ES UN ALGORITMO?

Conjunto ordenado y finito de operaciones sistemticas que permite hacer


un clculo y hallar la solucin de un tipo de problemas.

QUE ES RECURSION?

Es una forma de atajar problemas. Resolver un problema mediante


recursin significa que la solucin depende de las soluciones de pequeas
instancias del mismo problema.

QUE ES UN ALGORITMO RECURSIVO?

Un algoritmo recursivo es un algoritmo que expresa la solucin de un


problema en trminos de una llamada a s mismo. La llamada a s mismo se
conoce como llamada recursiva o recurrente.

QUE ES CASTING?

Es un procedimiento para transformar una variable primitiva de un tipo a


otro. Tambin se utiliza para transformar un objeto de una clase a otra
clase, siempre y cuando haya una relacin de herencia entre ambas.
TANIA ROSERO RODRIGUEZ. PROYECTO.

DESCRIPCION.

Mi proyecto trata sobre la creacin de un programa que me permita


invertir un nmero, por ejemplo, si el usuario ingresa 456 el
programa tendra que devolverle 654, para esto utilice un algoritmo
recursivo que nos ayuda a la optimizacin del proyecto.

Primero especificamos la funcin recursiva que se utilizara, en ella


pondremos las operaciones indicadas, una vez hecho esto entonces
empezamos con la creacin del programa final, en donde el usuario
tendr que ingresar un nmero, especficamente un entero, para
que el programa pueda ejecutarse de manera correcta.
TANIA ROSERO RODRIGUEZ. PROYECTO.

DIAGRAMA DE CLASES.
TANIA ROSERO RODRIGUEZ. PROYECTO.

OPERACIONES.

return n%10*(int)Math.pow(10,(int)Math.log10((double)n)) + InvertirNumero(n/10);

[(n%10) //residuo * (10log() )] + Funcin recursiva (n/10)


return n%10*(int)Math.pow(10,(int)Math.log10((double)n)) + InvertirNumero(n/10);

En la operacin tambin utilizamos algo llamado Casting, que sirve para


especificar el tipo de variable con la que se trabajara en ese punto.

CASO BASE
TANIA ROSERO RODRIGUEZ. PROYECTO.

CODIGO JAVA.

import java.util.Scanner;

public class Invertir {

public static int InvertirNumero (int n){

if (n < 10){ // Caso base


return n;
}

else{ // Caso recursivo


return n%10*(int)Math.pow(10,(int)Math.log10((double)n)) +
InvertirNumero(n/10);
}
}

public static void main(String[] args){


Scanner sc = new Scanner(System.in);
System.out.println("Ingrese el numero que desea invertir: ");
int numero = sc.nextInt();
int num_invertido = InvertirNumero(numero);
System.out.println("Numero invertido: ");
System.out.println(num_invertido);
}

}
TANIA ROSERO RODRIGUEZ. PROYECTO.

PRUEBAS.

You might also like