EJERCICIOS RESUELTOS
1. Escriba una función recursiva que
imprima en forma invertida los dígitos de un número entero.
SOLUCIÓN:
import
java.io.BufferedReader;
import
java.io.IOException;
import
java.io.InputStreamReader;
public class Ejer1 {
public static void invertir(int num){
System.out.print(num%10);
if(num/10!=0){
invertir(num/10);
}
}
public static void main(String[] args)
throws IOException{
BufferedReader br=new
BufferedReader(new InputStreamReader(System.in));
int n;
System.out.println("Ingrese el
numero a evaluar: ");
n=Integer.parseInt(br.readLine());
System.out.print("El numero
invertido es: ");
invertir(n);
System.out.println();
}
}
2. Escriba una función recursiva que
invierta una cadena de caracteres.
SOLUCIÓN:
import
java.io.BufferedReader;
import
java.io.IOException;
import
java.io.InputStreamReader;
public class Ejer4 {
public static String invertir(String cad,
int tama){
String c2="";
if(tama==0){
c2+=cad.charAt(tama);
return c2;
}
else{
c2=cad.charAt(tama)+invertir(cad,
tama-1);
return c2;
}
}
public static void main(String[] args) throws
IOException{
BufferedReader br=new
BufferedReader(new InputStreamReader(System.in));
int tamaño;
String cadena;
System.out.println("Ingrese la
cadena a evaluar: ");
cadena=br.readLine();
tamaño=cadena.length()-1;
System.out.println("La nueva
cadena es: "+invertir(cadena, tamaño));
}
}
3. Diseñe una función recursiva exponente
tal que dada la base y el exponente como números enteros devuelva su resultado.
Validar que la base será mayor que cero y el exponente mayor o igual que cero.
SOLUCIÓN:
import
java.io.BufferedReader;
import
java.io.IOException;
import
java.io.InputStreamReader;
public class Ejer5 {
public static int exponente(int base, int
exp){
if(exp==0){
return 1;
}
else{
return base*exponente(base,exp-1);
}
}
public static void main(String[] args)
throws IOException{
BufferedReader br=new
BufferedReader(new InputStreamReader(System.in));
int n, b;
do{
System.out.println("Ingrese el
numero: ");
n=Integer.parseInt(br.readLine());
}while(n<=0);
do{
System.out.println("Ingrese la
base: ");
b=Integer.parseInt(br.readLine());
}while(b<0);
System.out.println("El resultado
es: "+exponente(n, b));
}
}
4. Programar un algoritmo recursivo que
permita sumar los elementos de un vector.
SOLUCIÓN:
import
java.io.BufferedReader;
import
java.io.IOException;
import
java.io.InputStreamReader;
public class Ejer6 {
public static int vector(int A[], int
num){
if(num==0){
return A[num];
}
else{
return A[num]+vector(A,num-1);
}
}
public static void main(String[] args)
throws IOException{
BufferedReader br=new
BufferedReader(new InputStreamReader(System.in));
int V[], n;
System.out.println("Ingrese el
tamaño: ");
n=Integer.parseInt(br.readLine());
V=new int[n];
for(int i=0;i<n;i++){
System.out.println("V
["+i+"] = ");
V[i]=Integer.parseInt(br.readLine());
}
System.out.println("La suma de
los elementos es: "+vector(V,n-1));
}
}
5. Escribir una función recursiva que
tenga un argumento de tipo entero y que devuelva la letra P si el número es
positivo y la letra N si el número es cero o negativo.
SOLUCIÓN:
import
java.io.BufferedReader;
import
java.io.IOException;
import java.io.InputStreamReader;
public class Ejer8 {
public static char valor(int numero){
if(numero<=0){
return 'N';
}
else{
return 'P';
}
}
public static void main(String[] args)
throws IOException{
BufferedReader br=new
BufferedReader(new InputStreamReader(System.in));
int n;
char v;
System.out.println("Igrese el
numero: ");
n=Integer.parseInt(br.readLine());
v=valor(n);
if(v=='P'){
System.out.println("El numero
es positivo");
}
else{
System.out.println("El numero
es negativo");
}
}
}
6. Escriba una función recursiva que sume
los (n) primeros números enteros positivos.
SOLUCIÓN:
import
java.io.BufferedReader;
import
java.io.IOException;
import
java.io.InputStreamReader;
public class Ejer3 {
public static int sumar(int a){
if(a>0){
return a+sumar(a-1);
}
else{
return 0;
}
}
public static void main(String[] args)
throws IOException{
BufferedReader br=new
BufferedReader(new InputStreamReader(System.in));
int n;
System.out.println("INgrese la
cantidad de numeros a sumar: ");
n=Integer.parseInt(br.readLine());
System.out.println("La suma es:
"+sumar(n));
}
}
7. Escriba una función recursiva muestre
la SERIE DE FIBONACCI, ingresando el número de términos.
SOLUCIÓN:
import
java.util.Scanner;
public class Ejer9 {
public static int fibonaci(int numero){
if(numero==0||numero==1){
return 1;
}
else{
return
fibonaci(numero-1)+fibonaci(numero-2);
}
}
public static void main(String[] args) {
Scanner b=new Scanner(System.in);
int n, i;
System.out.println("Ingrese la
cantidad de terminos: ");
n=b.nextInt();
for(i=0;i<n;i++){
System.out.print(fibonaci(i)+"
");
}
System.out.println("");
}
}
Pinche programa feo
ResponderEliminar