Baseado neste desafio.
No jogo de ritmo osu! , o modificador de dificuldade "Tempo duplo" na verdade só aumenta a velocidade em 50%.
Sua tarefa é escrever um programa que gera um resultado positivo mesmo inteiro (superior a 0), e quando cada byte / personagem (a sua escolha qual) em seu código fonte é duplicado, deve saída o número multiplicado por 1,5.
Por exemplo, se o seu código-fonte é ABC
e gera 6, AABBCC
deve gerar 9.
Seguindo as regras do desafio original:
Regras
- Você deve criar um programa completo.
- A fonte inicial deve ter pelo menos 1 byte de comprimento.
- Ambos os números inteiros devem estar na base 10 (é proibido produzi-los em qualquer outra base ou com notação científica).
- Seu programa não deve receber entrada (ou ter uma entrada vazia e não utilizada) e não deve gerar nenhum erro (os avisos do compilador não são considerados erros).
- É permitida a saída de números inteiros com espaços à direita / à direita.
- Você não pode assumir uma nova linha entre cópias da sua fonte.
- Isso é código-golfe , portanto, o menor número de bytes em cada idioma vence!
- Aplicam-se lacunas padrão .
Eu imagino que isso será muito menos trivial do que o desafio original, mas espero que possamos ver algumas respostas criativas e únicas!
code-golf
source-layout
Skidsdev
fonte
fonte
write a program that outputs a positive even integer
Sim, será. Cada número par pode ser multiplicado por 1,5 para resultar em um número inteiro inteirofull program
. É difícil imaginar que um programa duplicado ainda tenha um ponto / função de entrada válido.Respostas:
Postes ,
754 bytesEscolheu um idioma aleatório no TIO usou-o
Explicação:
Experimente Online!
Dobrado:
Guardado 2 bytes graças a officialaimm
Guardado 1 bytes graças a Veedrac
fonte
4/6vt
funciona tão bem ...46vt
faria o mesmo?Geléia , 2 bytes
Experimente online!
Explicação:
Versão dobrada:
Experimente online!
Explicação:
fonte
LibreOffice Calc, 8 bytes
Salve-o como
*.csv
e abra-o no LibreOffice Calc. Você terá 22 na A1.Dobre-os:
Você terá 33 na A1
fonte
MATL , 3 bytes
Experimente online!Ou versão duplicada .
Explicação
No MATL, um valor escalar (número, caractere, valor lógico) é o mesmo que uma matriz 1 × 1 que contém esse valor.
Versão normal:
Versão dobrada:
fonte
:)
[às vezes usar isso para obter os primeirosn
elementos de uma matriz ...]vim, 5
Sem duplicar:
Com duplicação:
fonte
Não tenho certeza se esta resposta é válida. Basta postar aqui, caso alguém possa ter idéias daqui.
Node.js com sinalizador -p, 7 bytes
Por Alex Varga :
Node.js com sinalizador -p, 11 bytes
Antigo:
Saída 22 e 33.
fonte
-p
flag para gerar valor de expressãoPython 2 REPL, 11 bytes
Isso simplesmente avalia como 3 * 2 = 6. Duplicado, é
que é avaliado como 3 ** 2, que é 3 com a potência de 2 ou 9.
fonte
APL, 7 bytes
Imprime
2
.Imprime
3
.Experimente online!
Waaat?
Solteiro:
Em dobro:
fonte
Na verdade , 3 bytes
Experimente online!
Explicação:
Versão dobrada:
Experimente online!
Explicação:
fonte
CJam , 4 bytes
Experimente normalmente!
Experimente dobrou!
Explicação
Normal:
Em dobro:
fonte
AB],
também funciona.05AB1E , 2 bytes
Experimente online!
Explicação:
Versão dobrada:
Experimente online!
Explicação:
fonte
Neim , 2 bytes
Experimente online!
Explicação:
Versão dobrada:
Experimente online!
fonte
Pitão, 3 bytes
Experimente aqui.
Explicação:
Versão dobrada:
Experimente aqui.
Explicação:
fonte
R , 11 bytes
Experimente online!
!
é negação e**
é exponenciação (um apelido para^
). Os numéricos são convertidos em booleanos:0
paraFALSE
, todos os outros paraTRUE
. Booleans são convertidos para inteiros:FALSE
para0
,TRUE
para1
, então!0==1
,!1==0
,!!00==0
e!!11==1
.A versão única calcula assim8 × 1 + 1 × 0 = 8 e a versão dupla calcula 880 0+ 111= 12 .
fonte
*
e**
, mas você me venceu!!0
é irritante). Pode haver algo mais curto com-
e*
, mas ainda não encontrei essa solução ...Cubix , 6 bytes
Imprime
2
.Empurra
1
,)
incrementa,W
pula para a esquerda para aO
qual sai2
e@
termina o programa.Dobrado, é obviamente o
OO..11))WW@@
que em um cubo é:Ele pressiona
1
duas vezes,)
aumenta duas vezes,W
pula para a esquerda novamente, o que o coloca à direita, naO
direção norte, que sai3
e, em seguida, o próximo comando é o@
final do programa.Experimente online!
Duplicou online!
fonte
Klein ,
86 bytesSolteiro , Duplo
Explicação
Para o single, o programa segue um caminho bastante direto. O primeiro espelho desvia-o para o segundo que o desvia através do
4
até o final do programa.O duplo é um pouco mais complexo. Aqui está:
Os dois primeiros espelhos funcionam da mesma forma, no entanto, há um novo espelho devido à duplicação que desvia o ip de volta ao início, é capturado pela duplicata do primeiro espelho e desviado para o final. Tudo o que é executado é o
33++
que é avaliado em 6.fonte
TI-Basic, 3 bytes
Solteiro:
A última expressão é implicitamente devolvida / impressa no TI-Basic, pelo que é impressa
2
Dobrado:
Devoluções / impressões 3
TI-Basic é uma linguagem tokenizada ;
int(
,,√(
e8
são cada um byte na memória.fonte
REPL Ruby, 8 bytes
O REPL imprime apenas o último valor avaliado:
22
.Dobrado:
Este tempo
33
é o último valor avaliado. A sequência é descartada mais uma vez e a#
inicia um comentário.fonte
> <>,
198 bytesImpressões
22
Experimente online!
Explicação:
Dobrado:
Impressões
33
Experimente online!
Explicação:
Versão antiga:
Normal:Impressões
2
Experimente online!
Explicação:
Dobrado:
Impressões
3
Experimente online!
Explicação:
fonte
Zsh , 14 bytes
Experimente online!
Obter um programa completo em um idioma não-golfe para imprimir qualquer coisa com o código-fonte duplicado como esse é um desafio. O Zsh é muito útil para isso, porque arquivos e heredocs são implicitamente transmitidos para
cat
. Vamos dar uma olhada na primeira linha nos dois casos:Enquanto
3
não for um programa, o primeiro programa será impresso apenas22
. O segundo programa será impresso33
rodeado por novas linhas extras (devido à duplicação).Se
3
for uma função / programa / alias, essa solução de 18 bytes ainda funcionará!Experimente online!
A última
\
é a continuação da linha; portanto, a nova linha é descartada, efetivamente fazendo a declaração de ecoecho '22\c3'
. As\c
causas eco para parar de imprimir depois22
(o que também acontece para suprimir a nova linha).fonte
Perl 6 , 14 bytes
Experimente online! Experimente dobrou!
Isso usa a função de depuração convenientemente nomeada
dd
para gerar o programa duplicado para STDERR. Para separar a lógica, colocamos o programa duplicado entre aspas, que depois se cancelam quando duplicados, junto com um caractere#
de comentário para comentar o programa normal agora inválido.fonte
Stax , 3 bytes
Execute e depure
Execute e depure o dobro
U
empurra -1.J
quadrados^
incrementos.fonte
MathGolf , 2 bytes
Experimente online! Tente dobrar
Semelhante a outras respostas, a primeira instrução produz um
1
par quando duplicada e a segunda a incrementa. Nesse caso, usei exponenciação reversa (0**0 = 0**0**0 = 1
), mas também poderia ter sido uma das!£≤°
instruções e talvez até mais que eu tenha perdido.fonte
Japonês , 2 bytes
Outra solução "fatorial + 1".
Teste-o
Teste-o
fonte