elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  problemas con algoritmos recursivos
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: problemas con algoritmos recursivos  (Leído 3,459 veces)
dato000


Desconectado Desconectado

Mensajes: 3.034



Ver Perfil
problemas con algoritmos recursivos
« en: 27 Mayo 2010, 04:51 am »

Bueno, tengo dos códigos que me han sacado mucho con esto de la recursividad.

Por favor solo necesito una mano, sobre todo con el segundo,

1) convertir un entero positivo a una base determinada (entre 2 y 16)
---Con recursividad---
El problema es que el número me sale al revés...

Código:
#include "iostream"
#include "conio.h"

using namespace std;

char numero_decimal(int N,int base)
{
      
        if(base<2||base>16){
                cout << "  LA BASE NO ESTA ENTRE LOS VALORES PERMITIDOS!!" <<  endl;
        }
        else{
                if(N<base){
                    cout << N;    
                }
                else{
                    
                    cout << N%base;
                        return numero_decimal(N/base, base);
                }    
        }
                    
        
            
    
}

int main()
{
        int N,B;  
        cout<<"Ingrese numero en base decimal (10) para empezar la conversion: ";
        cin>>N;
        cout<<"*** DEBE ESTAR EN EL RANGO 2 a 16***" << endl;
        cout<<"Ingrese base: ";
        cin>>B;
        cout<<"El numero en la base " << B<< " es:"; cout<<numero_decimal (N,B);
        
        cout<<endl;
        system("PAUSE");
        return 0;
}


-------------------

2) para un entero decimal positivo obtener todas las formas posibles de representar ese entero como la suma de enteros menores que él.

---Con el mismo cuento de la recursividad---

En este estoy más que perdido. Soy uno de tantos a los que la recursividad los ha dejado muy loco.

Ej:

2 -> 1+1
3 -> 2+1
       1+1+1
4 -> 3+1
       2+2
       2+1+1
       1+1+1+1

y así.

Realmente con este no se ni como empezar pues no se como retornar el entero de la forma que se pide.

esto es lo que tengo (que es practicamente nada)

Código:
#include "iostream"
#include "conio.h"

using namespace std;

int suma(int a){
    if(a==1)
            return 1;
    else{
            cout << a-1 << " + " << suma(a-1) << " + ";
    }
    
        
    
}

int main()
{
        int num;
        cout<<"Ingrese el numero para entregar las sumas: ";
        cin>>num;
        cout << suma(num);
        
        cout<<endl;
        system("PAUSE");
        return EXIT_SUCCESS;
}

Lh: No hagas doble post.

Nadie????? perdón por subir esto, pero ha pasado mucho tiempo y no he conseguido respuesta, y pues en el primer caso ya conseguir la solución por un amigo, pero el segundo?? nadie tiene algún dato??


« Última modificación: 19 Junio 2010, 00:52 am por Littlehorse » En línea


Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines