Este es el primero de una serie de rompecabezas de C ++ para ti. Espero que lo disfrutes.
Entonces, rompecabezas no.1:
Dado el siguiente programa:
#include <iostream>
int main()
{
const int a=1;
const int b=2;
const float c=0.5;
std::cout << a/b-a*c;
}
Inserte algún código en una sola línea nueva en cualquier lugar dentro del programa para que la salida sea 0. La nueva línea contendrá MÁS DE 18 caracteres (incluidos los espacios), y el resto de las líneas permanecerán sin modificaciones. Para ser claros, aquí hay un ejemplo de un nuevo código válido:
#include <iostream>
int main()
{
const int a=1;
const int b=2;
int* p = NULL;
const float c=0.5;
std::cout << a/b-a*c;
}
Se insertó una nueva línea con 15 caracteres, por lo que está bien. Sin embargo, no resuelve el problema.
Si esto es demasiado simple para ti, no te preocupes, ¡viene más!
code-challenge
programming-puzzle
Bogdan Alexandru
fuente
fuente

Respuestas:
debería funcionar también y tiene la misma longitud.
fuente
#define int floatEn realidad es un comportamiento indefinido. No está permitido dar a las palabras clave un nuevo significado.#define int ERRORpara obligarme a usar el equivalente de enint32_tlugar de los tipos incorporados. Cuando lleguéint main(), me había olvidado de la macro y me preguntaba por qué diablos mi código no se compilaría.Podemos deshacernos de a = 1 moviéndolo a otro ámbito:
Esto es creo 13 personajes. O mejor aún, obtenga una nueva
aque también resulte en 0:Eso son 11 caracteres
fuente
1 nueva línea, 12 nuevos caracteres
fuente
Entonces
#define a 0, hecho. Vi que fue publicado, como era de esperar.Sorprendentemente, esto no fue publicado:
14 caracteres
Eso debería hacer, ¿verdad?
fuente
17 caracteres
Por cierto, el programa original no se compila bajo MSVC, que se queja de que
mainno tiene un tipo de retorno.fuente
18, incluyendo nueva línea
fuente
floates una palabra clave).15 caracteres
fuente
14 caracteres.
fuente
17 caracteres
fuente
Tiene 17 caracteres, así que simplemente encaja.
fuente
No conozco C ++, sin embargo, basándome en la pregunta, ¿no podría simplemente ingresar una línea para simplemente generar 0? la pregunta especifica que la salida debe ser 0, no especifica que debe CAMBIAR la salida a 0.
(Tengo 0 pistas en C ++, aunque quizás alguien pueda usar este concepto)
fuente
12 caracteres, similar a la solución de la mafia
otras combinaciones también funcionan, como
#define a co#define c 0fuente
Sé que no es código golf , ¡pero parece que hoy llevo ese sombrero!
--una;
cinco caracteres, incluida la nueva línea;
fuente
aesconst.c ++ lo que sea ...
ejecutar a través de:
fuente
Una variante de la respuesta del señor Lister pero un poco menos obvia.
fuente
¿Qué tal estos 11 caracteres ...
fuente
int aantes delifno se está inicializando, por lo queapodría tener algún valor.a.http://codepad.org/N06weGJc
fuente