Este desafiado é altamente inspirado pelo que @Mego criado com seus santos e Holier números, muitas graças a ele e seus trocadilhos.
Os números sagrados são números compostos apenas pelos dígitos com orifícios , que são:
04689
Números com pelo menos um dígito profano são considerados profanos. Dígitos profanos são maus por definição, mas estar perto dos dígitos sagrados os ajuda a se tornar neutros. Portanto, quanto mais próximos estiverem, menos profanos (1 quando adjacente).
A profanação de um número é a soma da profanidade de seus dígitos, um número composto apenas de números profanos tem uma profanidade infinita.
Number :8 5 5 8 7
Digital Unholiness:0+1+1+0+1
Total Unholiness :3
Number :0 1 7 5 5 2 8 5 7
Digital Unholiness:0+1+2+3+2+1+0+1+2
Total Unholiness :12
Number :1 5 7 3 2 1
Digital Unholiness:∞+∞+∞+∞+∞+∞
Total Unholiness :∞
Number :0 4 6 8 9
Digital Unholiness:0+0+0+0+0
Total Unholiness :0
Sua tarefa
Você precisa escrever um programa ou função que use um número inteiro positivo ou uma sequência composta apenas de dígitos como entrada e produza sua profanidade. Se você optou por usar um número inteiro como entrada, pode assumir que ele nunca terá uma liderança, 0
pois seu idioma pode eliminá-lo.
Em caso de profanidade infinita, você pode escolher entre três saídas
- O caractere
∞
(3 bytes) - Saída infinita contendo pelo menos 1 dígito diferente de zero, mas apenas dígitos.
- Um
Infinity
valor interno.
Isso é código-golfe, então o código mais curto em byte vence, boa sorte!
Infinity
valor interno é legal?0
dígito sagrado, modificarei a postagem de acordo com as respostas baseadas em números 0 não principais.Respostas:
MATL ,
2524 bytesExperimente online!
Entrada é uma sequência. Na saída, o infinito é exibido nativamente como
Inf
.Explicação
fonte
Python (3),
137131 bytesResultados
fonte
Pitão,
31292725 bytesExperimente on-line: Demonstration or Test Suite
Para cada dígito, calculo as distâncias para cada número. A distância é infinita, se o segundo dígito não for sagrado. A partir dessas listas, pego a distância mínima e resuma.
Explicação:
fonte
JavaScript (ES6), 93 bytes
Se
Infinity
não for um infinito legal, adicione 13 bytes para==1/0?'∞':r
.fonte