Ing. MSc John Bonilla B
  funciones recursivas en java
 
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("");       
    }
 
}

 
  Hoy habia 4 visitantes (7 clics a subpáginas) ¡Aqui en esta página!  
 
espero tengan un uso adecuado de las tecnologias...
Este sitio web fue creado de forma gratuita con PaginaWebGratis.es. ¿Quieres también tu sitio web propio?
Registrarse gratis