Dado el siguiente script de Python 3:
def greet():
print("Hello, world!")
greet()
Anteponga algunas líneas a este archivo de texto para que pueda ejecutarse como un programa Python, así como compilarse y ejecutarse como un programa C ++ que produce la misma salida. ¡Hola, mundo! (incluida la nueva línea al final):
$ python3 bilingual.py.cpp
Hello, world!
$ g++ bilingual.py.cpp && ./a.out
Hello, world!
La solución se puntuará por el recuento de caracteres que no sean espacios en blanco de todo el programa, incluido el script de Python:
sed 's/\s//g' bilingual.py.cpp|wc -c
Respuestas:
Puntuación 116
Anteponer:
La barra diagonal inversa del preprocesador
\
tira de la desagradable:
línea de contención en una macro no utilizada. Pruébalo aquí .Gracias a la respuesta de edc65 para la nota sobre int implícito en C ++ 4.
Gracias a la respuesta de PieCot por sugerir
<cstdio>
más<stdio.h>
.Gracias a Leon por sugerir que elimine
X
el original#define X\
.fuente
Puntuación 119
(Thx @Linus para el recuento de bytes)
(1 byte guardado gracias a @Conor O'Brien) (1 byte guardado gracias a @PieCot)
Contando bytes nuevamente a mano, encontré 113. Quizás esta vez sea correcto.No, no esNotas: stdio y put todavía están vivos y pateando en C ++. El tipo int faltante es válido en C ++ 4. Prueba
fuente
0
de la línea 2. Prueba.Puntuación
131 130134Las líneas a anteponer son:
Y el código resultante:
Pruebas
fuente
#import
no es válido C ++:
Puntuación
110104Mejorando la respuesta de Linus :
Prueba como C ++
Prueba como Python
fuente
Puntuación 136
Solo para los registros:
Otra forma (menos eficiente) de manejar el colon.
fuente
cstdio
debe tenerse en cuenta.tr -d '[:space:] ' < bilingual.py.cpp | wc -c
obtengo 128, mientras que este:tr -d '[:blank:] ' < bilingual.py.cpp | wc -c
proporciona 136