Percebi que não precisava usar ?
para representar o dígito ausente. Por isso, usei um múltiplo de 9 após subtrair 48: x
Isso me permite jogar fora 3+
, mas só me salvou 1 byte devido ao tamanho do primeira linha antes da condicional :(
Uma porta de minha resposta Befunge-98:
5 mais bytes, a fim de verificar se tenha atingido EOF,
mais um byte de empurrar 48 ( "0"
vs '0
),
1 mais bytes para imprimir a resposta com .@
,
e mais um byte, porque o segundo A linha possui um espaço
para um total de mais 8 bytes.
~:0`!#|_"0"-+
@.%9-<
Experimente online!
Saída 0
se o dígito ausente puder ser 0 ou 9.
Isso funciona apenas no intérprete PyFunge pelos motivos explicados abaixo.
Explicação
Grande parte dessa explicação é copiada e colada da minha explicação do Befunge-98 , pois esse programa é muito semelhante a este. plugue descarado
Na primeira linha do programa, somamos os dígitos, incluindo x, que é tratado como um 72 por causa de seu valor ASCII. No entanto, a soma será a mesma assim que tivermos modificado por 9, então isso é irrelevante.
~:0`!#|_"0"-+ THE FIRST LINE
~ Gets a character from input - If it is negative, we've reached EOF
:0`! Pushes 0 if the character is positive, 0 otherwise
#|_ Goes to the next line if the value if 0
This also gets the negative value off the stack by using a |
"0"- Subtracts 48 to account for taking in ASCII values
+ Adds this adjusted value to the sum
Se apenas modificássemos por 9, ficaríamos com o dígito errado, porque queremos 9 - (sum % 9)
. No entanto, podemos fazer melhor do que 9\-
, que subtrairia o restante de 9: se fizermos a soma negativa antes de modificar por 9, obteremos um resultado positivo, equivalente a 9 - (sum % 9)
alguns intérpretes. É isso que exige que usemos os intérpretes PyFunge para o Befunge 93 e 98, pois é o único no TIO que faz isso. Os outros nos dão um valor entre -8 e 8 em vez de 0 e 8
@.%9-< THE SECOND LINE
< Redirects the IP onto this line
- Subtracts the sum from an implicit 0, making it negative
%9 Mods the sum by 9
@. Prints the digit and exits
0
? E quanto a[0, 9]
(matriz ou lista de 2 números)?