Un desafío para los interesados

Iniciado por LearningSpanishProgrammer, 9 Septiembre 2011, 03:30 AM

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

PiroskY

#10
Yo entiendo lo que el desafió pide, pero vos no me estas entendiendo a mi.

No le veo sentido si se hace para un solo numero en particular.

Ahora, si dice para cualquier numero positivo, ahí ya mi programa dejaría de funcionar, pero para lo que el desafió pide, alcanza y sobra.

Alien-Z

#11
Cita de: $Edu$ en 12 Septiembre 2011, 18:00 PM
Ya lo hiciste alienz o que? esque lo iba a hacer ahora, pero si ya lo hicieron 0 ganas xDD es usando mod y listo

Si lo hice, además rir3760 ya ha posteado la solución en su segundo comentario.

Cita de: PiroskY en 12 Septiembre 2011, 18:00 PM
Yo entiendo lo que el desafió pide, pero vos no me estas entendiendo a mi.

No le veo sentido si se hace para un solo numero en particular.

Ahora, si dice para cualquier numero positivo, ahí ya mi programa dejaría de funcionar, pero para lo que el desafió pide, alcanza y sobra.

No hombre, te vale con pedirle un valor al usuario y guardarlo en la variable, te calculará igualmente el número inverso. Vamos a cambiar un poco el enunciado, en vez de poner "int i = 389438" comienza con esto:

#include <iostream>
using namespace std;

int main()
{
int i;
cout << "Escribe un numero: ";
cin >> i;

//Ahora aqui escribe el code para obtener el numero invertido

cin.get();
return 0;
}


¿Asi mejor?.

PiroskY

Mejoro, pero sigue sin la especificidad que busco.

Se van a ingresar números positivos y negativos? 0 ? solo uno de los dos?


Porque la solución posteada no funciona para números que no sean positivos.

Alien-Z

Cita de: PiroskY en 12 Septiembre 2011, 18:11 PM
Mejoro, pero sigue sin la especificidad que busco.

Se van a ingresar números positivos y negativos? 0 ? solo uno de los dos?


Porque la solución posteada no funciona para números que no sean positivos.

Consideramos que siempre va a ser positivo porque el ejercicio era sobre el número 389438.

PiroskY

Yo también considero eso, pero no soy yo el que decide eso.

ghastlyX

Para los que pedís más precisión en las restricciones o los que consideráis el ejercicio demasiado fácil, con permiso del autor lo podéis complicar un poco (bastante poco para cualquiera que sepa cuatro cosas de programación) siguiendo el siguiente enunciado, para el que la solución propuesta anteriormente no funcionará.

Problema:
Dado un número 0 <= n <= 10100 por la entrada estándar (stdin), se debe mostrar por la salida estándar (stdout) su número girado, tal que si los dígitos de n son a1, ..., an, los de su número girado serán an, ..., a1 (es la misma definición, formalizada un poco). Tened en cuenta por ejemplo que el girado de 100 es 001 y no 1.

Restricciones:
No se pueden utilizar arrays, structs, strings, clases ni nada similar, tan sólo los tipos de variables básicos de C/C++, es decir int, char, long long, etc.

rir3760

Un problema con un valor como ese (diez a la cien) es el rango. Seria mejor utilizar [0, ULONG_MAX] (hay que incluir <limits.h>) y de esa forma se mantiene dentro del estándar de C (C90).

Un saludo
C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language

ghastlyX

El rango es totalmente intencionado, lo he puesto precisamente para que no coja en las variables numéricas primitivas. Ahí está la gracia del problema.

LearningSpanishProgrammer

ghastlyX, gracias, su problema es muy bueno

A lós demás que pensa el ejercicio no esta claro, recorde que interpretacion es una parte importante en la solucion de problema.

Pero, limitar a solo a números enteros positivos hubiera sido bueno. Lo siento por esto.
Estoy aprendiendo español, y tu estas aprendiendo programación

rir3760

Cita de: ghastlyX en 13 Septiembre 2011, 15:07 PMEl rango es totalmente intencionado, lo he puesto precisamente para que no coja en las variables numéricas primitivas. Ahí está la gracia del problema.
OK.

Un detalle es, al no haber limites, se estaria tratando no con un numero sino una secuencia de caracteres (solucion recursiva).

Un saludo
C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language