Dada a saída do programa C # a seguir False
, injete uma linha de código 'maliciosa', de forma que o programa saia True
.
class Program
{
static void Main()
{
System.Console.Write("False");
;
}
}
Sua resposta deve consistir em uma sequência que substitua o segundo ponto e vírgula e faz com que o programa produza True
o todo True
e nada além de True
(nem mesmo uma nova linha). Isso deve ser feito se stdout for impresso no console e se stdout for redirecionado para um arquivo.
A resposta mais curta vence.
code-golf
c#
programming-puzzle
Kendall Frey
fonte
fonte
Respostas:
52 caracteres
então a coisa toda se torna:
fonte
Write
.WriteLine
paraWrite
for(;;);
nada que eu tenha visto requer que o programa seja encerrado ...?}static Program(){System.Console.Write(0<1);for(;;);
sempre poderia se tornar}static Program(){for(System.Console.Write(0<1);;);
C #, 51 caracteres
Funcionará apenas na saída padrão
fonte
WriteLine
.Write
: / Eu não entendo como iríamos conseguir resolver este se continua a mudar ...Console.Write
e pode usar em\r
vez de 5\b
s.Console.Write("\rTrue ");
Você pode generalizar a resposta do RamonBoza para continuar funcionando se o stdout for redirecionado para um arquivo.
Supondo que o programa seja executado em Mono no Linux, com o assembly
Mono.Posix.dll
carregado:Duvido que isso funcione no Windows, mas provavelmente existe um equivalente
isatty()
.fonte
83 ... WIP
Eu estava esperando que isso funcionasse, mas aparentemente "False" não está sendo internado como eu esperava no meu compilador
destroçado
fonte
fonte
Não tenho certeza se isso é aceito.
A pergunta não diz nada sobre as opções do compilador, portanto, presumo que posso alterar o ponto de entrada do aplicativo.
55 caracteres, 3 a mais que a resposta aceita
Cheio
fonte