PDA

Ver la versión completa : Reto 1 de programacion




Dédalo
05-25-2009, 06:22 PM
Bueno pues este fin de semana estaba en mi cama acostado y me dije por que no hacer un reto de programacion =) entonces decidí que podria hacer un reto he ir de facil a dificil =) mm bueno miren aqui les pongo la logica del programa:

Bueno miren lo que yo voy a hacer aqui es un programa que encripte un numero lo que ustedes tienen que hacer es un programa que lo desencripte, no se asusten que esta facil =)

mm miren aqui va como se encripta:

1.- el usuario ingresa un número
2.- ese numero se multiplica por el mismo y guardemoslo en una variable en mi caso la a.
3.- luego a lo multiplicamos por el numero de letras del numero ingresado. (si es 5 enconces * 5 si es 2 entonces * 3 si es 100 enconces *4 y asi sucesivamente )
4.- a ese numero le vamos a sumar 10 y luego al total lo dividimos para dos.
5.- cuando tenemos ese resultado lo multiplicamos por el numero ingresado factorial es decir si el que ingresamos fue 8 y luego nuestro total hasta antes del factorial es 12 entonces multiplicamos 12 * 8!.

Bueno aqui les dejo la operacion viendola como matematica...

a = ingreso

code:


a * a * len(a) + 10 / 2 * a!

ahora aqui viene lo dificil =) ustedes tienen que hacer un programa que digamos este ejemplo

aplicando este proceso:


a * a * len(a) + 10 / 2 * a!

si a fuese 5 entonces la encriptacion sería 2100 =) su programa debe de cambiar 2100 a 5 de nuevo pero con cualquier numero que yo ingrese =)...

Parametros del Reto:

Puede estar en los siguentes lenguajes de programacion:

- PHP
- JAVASCRIPT
- VB.NET
- VB 6.0
- VBS
- C/C++
- PERL
- PYTHON

mm bueno ese es mi reto =) mm ojo... acuerdense y sin complicacion el numero se ingresa en letras; mandenme sus respuestas por mp


Los que pasaron el reto:

jakero
05-25-2009, 10:45 PM
Esta bueno el reto, solo una pregunta cual es el numero maximo q puede ingresar el usuario?? por ej: si ingreso=7457 la longitud seria= siete mil cuatrocientos ciencuenta y siete=43 verdad??? entonces hay un numero limite???

PD: lo primero q debe hacer el programa es convertir el numero a literal verdad?? es decir si la entrada es 25 la salida sera veinticinco....

Dédalo
05-25-2009, 10:51 PM
claro pero esa parte no la hagan deja que el usuario ingrese en palabras es solo un reto y lo de el limite no puse limite por que igual si el lenguaje de programacion es pobre no te dejará poner mucho xD mm pero si quieres un numero limite que sea el 50 mas que suficiente es solo la logica lo que te hace ganar =)


Saludos
Dedalo(Dédalo)

jakero
05-25-2009, 10:57 PM
ok listo ya habia hecho el codigo para convertirlo a literal jjejejej, pero bueno a resolver se ha dicho...

Dédalo
05-25-2009, 11:01 PM
entonces suerte winux pero si quieres pon tu code de transformar a literal pero no es necesario =)

Saludos
Dedalo(Dédalo)

jakero
05-25-2009, 11:19 PM
Dedalo no se si esta bien la correccion pero para el caso de q sea 5 no deberia devolver 8100?

a * a * len(a) + 10 / 2 * a! entonces si a=5=cinco
5 * 5 * 5 = 125 + 10 = 135 / 2 = 67.5 * 120 = 8100 (5! = 120)

???

jakero
05-26-2009, 01:13 AM
Tratando de resolver el reto he encontrado algunas dudas:

- desde la parte del desencriptador creo q la entrada deberia ser directamente un numero natural ej: entrada=8100 , salida=5 (¿aqui la entrada no es en literal verdad?)

solo como dato: q deberia devolver si introduces(en el desencriptador) 8000???;
}//aqui termina mi comentario jejej

fortress
05-26-2009, 01:15 AM
Totalmente deacuerdo con winux, Dedalo seria bueno que que nos confirmaras para poder continuar, para saber si estamos equivocdos o estamos en lo cierto. De todas maneras gracias por la iniciativa.

Fortress

Dédalo
05-26-2009, 09:57 AM
Si deberia dar 8100 es verdad yo me confundi cn el lenth :) mm despues el resto esta bn :)

Andru1989
05-26-2009, 05:16 PM
ey dedalo esta interesante el tema
ps con lo poco que se intentare hacer lo que pueda

gracias men

a y yo lo voy a intentar hacer en ruby
se puede no es asi???

Dédalo
05-26-2009, 06:05 PM
se un poco de ruby asi que creo que por logica sacaré si esta bien o mal xD mm y si pones un numero como 8000 osea que no es encriptado solo un mensaje que diga eso es otro tipo de encrioptacion...


Saludos
Dédalo

elegido
06-11-2009, 04:48 PM
Bueno quiero dejar mis dudas

Quisiera q este reto estubiera mejor explicado o mejor planteado, creo q no es claro el planteamiento

por eso pido la explicacion de el numeral 3


3.- luego a lo multiplicamos por el numero de letras del numero ingresado. (si es 5 enconces * 5 si es 2 entonces * 3 si es 100 enconces *4 y asi sucesivamente )

cuando dices len(a) te refieres a la longitud de la palabra?
osea si tiene un digito multiplicarias por uno, cuando tienes dos digitos por dos, y asi suscivamente?
ejs:
numero -------- multiplicar por
1 ----------------- 1
2 ----------------- 1
23 ---------------- 2
800 --------------- 3
1000 -------------- 4

Bueno pido la aclaracion por q winux cuando toma len(a), con a = 5
dice q len(5)=5 a lo q Dedalo dice ser cierto. o por lo menos apruebas lo q ha hecho winux


Si deberia dar 8100 es verdad yo me confundi cn el lenth mm despues el resto esta bn

esa es la explicacion q pido. Pero tambien quiero aclarar lo siguiente


a * a * len(a) + 10 / 2 * a!
no es lo mismo lo q hace winux

a * a * len(a) + 10 / 2 * a! entonces si a=5=cinco
5 * 5 * 5 = 125 + 10 = 135 / 2 = 67.5 * 120 = 8100 (5! = 120)

bueno winux lo q hace es esto

(a * a * len(a) + 10 )/ 2 * a!

eso es lo q hace, perdona winux pero a pesar de q creo q esta bien lo q haces esta mal expresado o mal escrito
(lo siguiente no es codigo Html solo es una tablita)

(5 * 5 * 5) = (125 + 10) = (135 / 2) = (67.5 * 120)
|| || || ||
125 != 135 != 67.5 != 8100

mucho cuidado no es lo mismo
a) a * a * len(a) + 10 / 2 * a!
b) (a * a * len(a) + 10 / 2) * a!
c) (a * a * len(a) + 10 )/( 2 * a!)

tanto a b y c son diferentes.

Espero la aclaracion del reto =)
gracias :)