Ejercicios Recursivos en Java y sus Soluciones

Iniciado por :ohk<any>, 11 Octubre 2008, 03:19 AM

0 Miembros y 1 Visitante están viendo este tema.

alfred_223315

Hola haber si alguien me puede ayudar nesesito este algoritmo (multiplicacion de matrices) en forma recursiva...

void ingreso(int m[][30],int f,int c){
for(int i=0;i<f;i++){
    for(int j=0;j<c;j++){
     cout<<"Valor ["<<(i+1)<<"]["<<(j+1)<<"]= ";
     cin>>m[j];   
    }
}
}

void mostrar(int m[][30],int f, int c){
for(int i=0;i<f;i++){
    for(int j=0;j<c;j++){
     cout<<"Valor ["<<(i+1)<<"]["<<(j+1)<<"]= ";
     cout<<m[j]<<endl;   
    }
}
}

void multiplica(int m1[][30],int m2[][30],int p[][30],int f1,int c1,int f2,int c2){
for(int i=0;i<f1;i++){
    for(int j=0;j<c2;j++){
        for(int k=0;k<c1;k++){
        p[j]=p[j]+(m1[k])*(m2[k][j]);               
        }           
    }
}
cout<<"\n\n\t\tEL PRODUCTO DE VECTORES ES\n\n";
mostrar(p,f1,c2);
}

void inicializaValoresEnCero(int p[][30],int f,int c){
for(int i=0;i<f;i++){
    for(int j=0;j<c;j++){
    p[j]=0;
    }
}
}

int main(){
int M1[30][30],M2[30][30],P[30][30],f1,c1,f2,c2;
cout<<"\n\tPrimera Matriz"<<endl;
do{
cout<<"Ingrese el numero de filas ";
cin>>f1;
}while(f1<1||f1>30);
do{
cout<<"Ingrese el numero de columnas ";
cin>>c1;
}while(c1<1||c1>30);

ingreso(M1,f1,c1);

cout<<"\n\tSegunda Matriz"<<endl;
do{
cout<<"Ingrese el numero de filas ";
cin>>f2;
}while(f2<1||f2>30);
do{
cout<<"Ingrese el numero de columnas ";
cin>>c2;
}while(c2<1||c2>30);
ingreso(M2,f2,c2);

if(c1==f2){

cout<<"Se puede multiplicar"<<endl;
inicializaValoresEnCero(P,f1,c2);
multiplica(M1,M2,P,f1,c1,f2,c2);
}
else
cout<<"NO Se puede multiplicar"<<endl;
system("pause");
return 0;
}


Berrinche

#31
Me gustaría saber como hacer un método recursivo que reciba un número entero binario y devuelva el número entero
decimal equivalente. Y también como hacer un método recursivo que reciba un número entero decimal y devuelva una cadena con el
número equivalente hexadecimal.

No tengo idea ni de como comenzar.
LBN

owfei

En c++ resolvi el de invertir de ésta manera:

Código (cpp) [Seleccionar]
#include <math.h>

int inv(int n){
if(n <= 9) return n;
else return inv(n/10) + inv(n%10)*pow(10, n%10-1);
}

Mr.Shak

hola a todos:

Estoy haciendo un curso de java, en el cual tengo que utilizar una función recursiva, o pongo en antecedentes:

Estamos creando un multicine, para comprar entradas y demas. El problema viene a la hora de reservar asientos, los cuales puedes ser consecutivos (si tenemos suerte) o no ( que es mi caso).

La historia es que si un cliente va a comprar 5 entradas al cine, y no tienen 5 entradas correlativas en la fila que quiera dicho cliente, los he de re-ubicar en otra zona del cine y en el peor de los casos en el que no haya por ningun lado 5 asientos consecutivos, pues por ejemplo ponerlos 3 en una fila y 2 en la siguiente justo delante , y sino de la manera en la que puedan estar mas cerca unos de otros.

No voy a decir que me resolvais el codigo, evidentemente, pero la verdad es que no tengo ni p**a idea de como hacerlo. Necesito ayuda de cualquier tipo.

Muchas gracias

trueno_dp

Hola, necesito sacar de forma recursiva los divisores de un numero, tengo la iterativa, pero ni en broma consiga la recursiva. graciaas

public static int recursividad(int numero){
   
     if(numero>2)
     {
       
        return 0;
     }else
     {
   
      
       return recursividad(numero%numero-1);
    }
 
  }

TheKaleb32

/*
Aqui esta una opcion de como se pueden generar con recursividad el ejercicio de invertir un numero.. Se regresa un String, y para solucionar el problema de imprimir ceros innecesarios al inicio o final del String, ocupo un contador y una condición extra..!   
**/

        public static void main(String[] args) {
      System.out.println( invertir ( 1230456 ) );      
   }// cierro metodo main   

         public static String invertir( int a, int b) {

      int c = ++b;

      if( a % 10 == 0 && c - 1 == 0){
         return ( "" + invertir( ( a / 10 ) , c - 1 ));
      }else{
         if ( a == 0 )
            return "";
         else
            return ( ( a % 10 ) + invertir( ( a / 10 ) , c ) );
      }
   }//cierro metodo invertir   

primoxhero

por favor ME PUEDEN AYUDAR EN ESTA sumatoria EJERCICIO es la siguiente:
X^1/1!+X^2/2!+X^N/N!

Skarlo

String pal=JOptionPane.showInputDialog("Introduce la palabra");
        JOptionPane.showMessageDialog(null, palabra(pal,pal.length(),"Su invertido es: "));
    }
    static String palabra(String c, int inv, String tama)
    {
       inv=inv-1;
        if(inv>=0)
        {
            tama=tama+c.charAt(inv);
            return palabra(c,inv,tama);   
        }
        else return tama;
    }

ato2112

sin while/for/etc.

public int invertir(int n){
      String aux=Integer.toString(n);
      if (n<10)
         return n;
      else return (int) ((n%10)*Math.pow(10, aux.length()-1)+invertir(n/10));
      
   }



jert2004

¿Quien me puede ayudar sumatoria e^x /x! recursividad java?
favor me podrian ayudar ya que llevo varios dias sin resolver, maso menos tengo este codigo
es la sumatoria de e a la x sobre x factorial
donde e = 2.718186 y x ingresa el usuario

package ejrecursividad;

import java.util.Scanner;

public class SumaFactorialLeperiano {

   static double FACTOR(int valor1) {
       if (valor1 == 0) {
           return 2.718186;
       } else {
           int valor2;
           valor2=valor1;
           return (Math.pow(2.718186,valor1)/(valor2))+(Math.pow(2.718186,FACTOR(valor1 - 1))/(valor2 * FACTOR(valor2 - 1)));
       }
   }

   public static void main(String[] args) {
       double  resultado;
       int valor1;
       System.out.println("ingrese nro1");
       Scanner mrno = new Scanner(System.in);
       valor1 = mrno.nextInt();
       resultado = FACTOR(valor1);
       System.out.println("LA SUMATORIA DEL: " + valor1 + " ES: " + resultado);