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

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  estructuras de datos
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: estructuras de datos  (Leído 1,580 veces)
Beginner Web


Desconectado Desconectado

Mensajes: 634


youtu.be/0YhflLRE-DA


Ver Perfil
estructuras de datos
« en: 4 Octubre 2019, 18:13 pm »

hoal quiero apsar este algoritmos a recursivo e ayudan? solo tengo esto

Código
  1. int vertir-un-numero(int n)
  2. {
  3. tpila pila;
  4. init_stack(pila);
  5. while(n>0){
  6. push_stack(pila,n%10);
  7. n/=10;
  8. }
  9. for(int i=0;empty_stack(pila)==false;i++)
  10. n+=pop_stack(pila)*pow(10.0,i);
  11. return n;
  12. }


En línea

7w7
dijsktra

Desconectado Desconectado

Mensajes: 110


Mr Edsger Dijsktra (Tribute to)


Ver Perfil
Re: estructuras de datos
« Respuesta #1 en: 8 Octubre 2019, 09:34 am »

Pero es que nadie va a responder a nuestra programadora argentina?  :D :D

hoal quiero apsar este algoritmos a recursivo e ayudan? solo tengo esto

Código
  1. int vertir-un-numero(int n)
  2. {
  3. tpila pila;
  4. init_stack(pila);
  5. while(n>0){
  6. push_stack(pila,n%10);
  7. n/=10;
  8. }
  9. for(int i=0;empty_stack(pila)==false;i++)
  10. n+=pop_stack(pila)*pow(10.0,i);
  11. return n;
  12. }

Antes de dar la solución, aprecio un fallo de eficiencia... No es necesario en el segundo bucle expresar pow(10.0,i)... puedes poner

Código
  1. for(int i=0,power=1;empty_stack(pila)==false;i++)
  2. {
  3. n+=pop_stack(pila)*power;
  4. power *=10 ;
  5. }
  6.  

Y te ahorras la función pow que trabaja con floats, algo que es "peligroso" en computación.


Lo normal es que te den el iterativo y tengas que hacer el recursivo. Si la función recursiva es lineal (con una sola llmada) entonces hay truco fácil. (Un poco largo para explicar aquí)

Lo que yo hago en estas lineas es dar el programa al que se aplica el truco. Es una función lineal no final, es decir, después de la llamada hay quqe hacer algo más, que en la veris'on iterativa realiza el segundo bucle...

Allá va:

Código
  1. int invertir_un_numeroG(const int N,int &power);
  2.  
  3. /*
  4.  P : A[0..log(N)) and N = \sum i : 0 <= i < log(N) : A[i]*10^i
  5.  Q : M = \sum i : 0 <= i < log(N) : A[i]*10^(log(N)-i)
  6. */
  7. int invertir_un_numero(const int N)
  8. {
  9.  int power;
  10.  return invertir_un_numeroG(N,power);
  11. }
  12.  
  13.  
  14. /* P' : P
  15.    Q' : Q and power=10^log(N)
  16. */
  17. int invertir_un_numeroG(const int N,int &power)
  18. {
  19.  if (N==0) { power = 1 ; return 0 ; }
  20.  int result;
  21.  result = invertir_un_numeroG(N/10,power);
  22.  result += N%10 * power ;
  23.  power *= 10;
  24.  return result;
  25. }
  26.  
  27. #include <iostream>
  28.  
  29. using namespace std;
  30.  
  31. int main(int argc, char* args[])
  32. {
  33.  int N;
  34.  for( ; cin >> N ; )
  35.    cout << invertir_un_numero(N) << endl;
  36.  return 0;
  37. }


Y algunos casos de prueba

Código:
bash-2.04$ ./main
45
54
4678
8764
12345678
87654321


« Última modificación: 8 Octubre 2019, 19:11 pm por dijsktra » En línea

Si la depuración es el proceso de eliminar fallos en el software, entonces programar debe ser el proceso de ponerlos dentro. (Edsger Dijsktra)
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
ADT estructuras de datos
Programación C/C++
do-while 4 7,286 Último mensaje 3 Julio 2010, 13:11 pm
por O-LLOS-O
Problemas con estructuras de datos en C#
.NET (C#, VB.NET, ASP)
dark_headhunter 5 4,477 Último mensaje 5 Junio 2011, 17:20 pm
por neoncyber
¿Por qué son importantes las estructuras de datos?
Programación General
Developer Diego 2 1,996 Último mensaje 21 Abril 2013, 16:18 pm
por ukol
Estructuras de datos en Java
Java
Oblivi0n 1 2,656 Último mensaje 3 Agosto 2013, 07:25 am
por DarkSorcerer
¿Estructuras de datos en C++? « 1 2 »
Programación C/C++
SDCC 13 3,592 Último mensaje 28 Octubre 2018, 02:40 am
por elgilun
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines