Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Programa que sepa los signos que hay que poner en una igualdad

Estas en el tema de Programa que sepa los signos que hay que poner en una igualdad en el foro de C/C++ en Foros del Web. Hola, pues me gustaría hacer un programa que al que tú le dijeras 3 números y lo que tienen que dar las cuentas entre ellos ...
  #1 (permalink)  
Antiguo 01/02/2012, 10:10
 
Fecha de Ingreso: octubre-2010
Mensajes: 77
Antigüedad: 14 años, 2 meses
Puntos: 4
Programa que sepa los signos que hay que poner en una igualdad

Hola, pues me gustaría hacer un programa que al que tú le dijeras 3 números y lo que tienen que dar las cuentas entre ellos y que te diera los signos, del tipo:
Números:
7
2
1

Resultado:
8

Y que el programa te dijera: 7+2-1=8

O algo parecido. Había pensando en poner Ifs con todas las condicionales, pero son muchas y no me parece lo más adecuado, ¿se os ocurre alguna otra forma?

El programa lo estoy haciendo en C++, por eso lo pongo aquí.

Un saludo y gracias
  #2 (permalink)  
Antiguo 01/02/2012, 15:35
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años, 7 meses
Puntos: 344
Respuesta: Programa que sepa los signos que hay que poner en una igualdad

Pues la forma más sencilla es usando backtracking, que en el caso de 3 números no tardaría mucho en descubrir una solución.

No es más que realizar una función recursiva probando con todos los casos posibles, es decir:

1. Pruebas el primer número + segundo número y llamas a la función de nuevo con el resultado de la suma y el tercer número.

1.1. Pruebas el primer número + segundo y como solo hay dos números, si la suma es igual al resultado devuelves los operandos que has utilizado.

1.2. Si no funciona, pruebas con el primer número - segundo y como solo hay dos números, si la suma es igual al resultado devuelves los operandos que has utilizado.

1.3 Igual con la multiplicacion

1.4 Igual con la division

2. Si ha regresado de la anterior, pruebas con la resta entonces y llamas a la función recursiva.

Y así con todos los casos.

Si con ninguna operación entre el primer numero y el segundo da solución, pasarías a mirar operaciones entre el 1º y el 3º.

Todo esto se puede hacer automatizado con bucles (el probar el 1º con el 2º, el 1º con el 3º, el 2º con el 1º, el 2º con el 3º, el 3º con el 1º, ...)

Supongo que todo esto quizás te puede sonar a chino, en ese caso mírate algo sobre backtracking y lo podrás entender mejor.

Saludos.
  #3 (permalink)  
Antiguo 02/02/2012, 10:57
 
Fecha de Ingreso: octubre-2010
Mensajes: 77
Antigüedad: 14 años, 2 meses
Puntos: 4
Respuesta: Programa que sepa los signos que hay que poner en una igualdad

Muchas gracias, el problema es que aquí pueden entrar en juego los tres números a la vez, o de dos en dos. De manera que si tiene:
7
2
1

Resultado:
9

Solo tiene que usar 7+2=9, no ha necesitado usar el 1, a no ser que intente 7+2*1=9.

Muchas gracias por decirme el nombre, ya estoy buscando información y eso.
  #4 (permalink)  
Antiguo 02/02/2012, 13:14
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años, 7 meses
Puntos: 344
Respuesta: Programa que sepa los signos que hay que poner en una igualdad

Pues entonces haces la comprobación cada vez que entras en la función, no sólo cuando te queden dos números, porque también se puede dar el caso de que uno de los números sea la solución.

Etiquetas: programa, signos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:29.