Bienvenido(a), Visitante. Favor de ingresar o registrarse.

Ingresar con nombre de usuario, contraseña y duración de la sesión

Foros del Club

Páginas: [1]   Ir Abajo
  Enviar tema  |  Imprimir  
Autor Tema: Hola vengo a voltear un numero! / IDEAS?  (Leído 2120 veces)
0 Usuarios y 1 Visitante están viendo este tema.
sir_carlomagno
Technocrat
*********

Prestigio: 15
Desconectado Desconectado

Sexo: Masculino
Profesión: Estudiante
Mensajes: 135


Mi espada ansia venganza


WWW
Lenguajes:
C/C++, html+CSS, bash, Java - applets (aprendiendo)
« en: 18/06/2006, 19:49:26 »

Buenas, chicos.. este es un problema simple, pero acá yo el carlitox del foro de linux, es nuevo y bueno Lengua uno de los problemas de mi libro de C++ es...

Voltear un numero como ... 123456  ( que sean enteros positivos)  y dejarlo así  654321
Parece simple de entrada, pero además pide un par de cosas más .. necesitamos hacerlo de una manera mas cañera usando funciones recrusivas para hacer el trabajo.

He pensado 2 formas, tomarlo como cstring, o bien .. con alguna formúla conseguir volteando calculando.

Ideas comentarios y sugerencias : )
En línea


---------------------------------------------------------------
>Solo hay algo seguro la infinita inseguridad de la seguridad_
http://ruthless.zathras.de/fun/topsecret/unix.gif
JoRgE-1987
Programador
Legend
**********

Prestigio: 7
Desconectado Desconectado

Sexo: Masculino
Título universitario: No.
Profesión: Programador
Mensajes: 633

Geek


WWW
Lenguajes:
Object Pascal
Pascal
HTML
Aprendiendo C++
« Respuesta #1 en: 18/06/2006, 20:27:53 »

Si yo lo tubiera que hacer, lo haria con dos strings ( Uno es el numero origen, y el otro destino ), y un For.

Saludois Cheesy:D
En línea


CID
Administrador
Legend
*****

Prestigio: 22
Desconectado Desconectado

Sexo: Masculino
Estudiante de: Arte de la informática
Título universitario: Programador
Profesión: Desarrollador
Mensajes: 1136



WWW
Lenguajes:
Varios
Bases de datos:
Varios
« Respuesta #2 en: 18/06/2006, 20:50:05 »

Mi solución no recursiva.

Código:
#include<iostream>

using namespace std;

int main(void)
{
string valor;
char aux;
cout << "Ingrese numero: ";
cin >> valor;
  int l = valor.length()/2;
  int j;
  for(int i = 0; i < l; i++)
  {
    aux = valor[i];
    j = valor.length()-i-1;
    valor[i] = valor[j];
    valor[j] = aux;
  }
  cout << valor;
}

Saludos.
En línea

jam
Wizard
****

Prestigio: 0
Desconectado Desconectado

Mensajes: 9


Usuario Devs


« Respuesta #3 en: 27/06/2006, 17:19:27 »

OK, ahi les va para que se diviertan  Sonreir:

int invierte(int n)
{
    int i;
    for (i=0;n>0;n/=10,i*=10)
        i+=n%10;
    return i/10;
}

Nota: ojo con el alcance de los numeros enteros y... ¿que pasa con los negativos?
En línea
sir_carlomagno
Technocrat
*********

Prestigio: 15
Desconectado Desconectado

Sexo: Masculino
Profesión: Estudiante
Mensajes: 135


Mi espada ansia venganza


WWW
Lenguajes:
C/C++, html+CSS, bash, Java - applets (aprendiendo)
« Respuesta #4 en: 27/06/2006, 22:34:51 »

jejej gracias, nada de negativos solo enteros positivos números reales

: )
En línea


---------------------------------------------------------------
>Solo hay algo seguro la infinita inseguridad de la seguridad_
http://ruthless.zathras.de/fun/topsecret/unix.gif
CID
Administrador
Legend
*****

Prestigio: 22
Desconectado Desconectado

Sexo: Masculino
Estudiante de: Arte de la informática
Título universitario: Programador
Profesión: Desarrollador
Mensajes: 1136



WWW
Lenguajes:
Varios
Bases de datos:
Varios
« Respuesta #5 en: 23/07/2006, 23:44:21 »

Basandome en el algoritmo iterativo de JAM, diseñé el siguiente algoritmo recursivo (en su totalidad) que responde a lo pedido.

Código
int potencia(int x, int n)
{
 if(n == 0)
   return 1;
 else
   return x * potencia(x, n-1);
}
 
int cifras(int n)
{
 if (n <= 9)
   return 1;
 else
   return 1 + cifras(n/10);
}
 
int invierteR(int n)
{
 if(n > 0)
   return (n % 10) * potencia(10, cifras(n)-1) + invierteR(n/10);
 else
   return 0;
}

Tiene 3 funciones recursivas (invierteR, cifras y potencia). Lamentablemente este algoritmo arrastra las mismas restricciones de diseño del algoritmo de JAM (rango de int y enteros no negativos).

Saludos.
En línea

Foros del Club
   

 En línea
Páginas: [1]   Ir Arriba
  Enviar tema  |  Imprimir  
 
Ir a: