Introdução
Você deve criar uma função para converter números arábicos em números gregos. A entrada será um número inteiro menor que 1000
e maior que0
.
Algoritmo
- Número dividida em dígitos (por exemplo,
123
->1
,2
,3
) - Tome cada dígito, e mudança de caráter encontrados na tabela abaixo, para o símbolo letra ou nome da letra, (por exemplo,
123
->1
,2
,3
->ΡΚΓ
ouRhoKappaGamma
).
Especificações
- Nenhuma conversão interna do sistema numérico
- O resultado deve ser capitalizado como no exemplo.
- A entrada estará na base 10.
Casos de teste
123 -> RhoKappaGamma or ΡΚΓ
8 -> Eta or Η
777 -> PsiOmicronZeta or ΨΟΖ
100 -> Rho or Ρ
606 -> ChiDiGamma or ΧϜ
Mesa
Α = 1 = Alpha = 913 UTF-8
Β = 2 = Beta = 914 UTF-8
Γ = 3 = Gamma = 915 UTF-8
Δ = 4 = Delta = 916 UTF-8
Ε = 5 = Epsilon = 917 UTF-8
Ϝ = 6 = DiGamma = 988 UTF-8
Ζ = 7 = Zeta = 918 UTF-8
Η = 8 = Eta = 919 UTF-8
Θ = 9 = Theta = 920 UTF-8
Ι = 10 = Iota = 921 UTF-8
Κ = 20 = Kappa = 922 UTF-8
Λ = 30 = Lambda = 923 UTF-8
Μ = 40 = Mu = 924 UTF-8
Ν = 50 = Nu = 925 UTF-8
Ξ = 60 = Xi = 926 UTF-8
Ο = 70 = Omicron = 927 UTF-8
Π = 80 = Pi = 928 UTF-8
Ϙ = 90 = Koppa = 984 UTF-8
Ρ = 100 = Rho = 929 UTF-8
Σ = 200 = Sigma = 931 UTF-8
Τ = 300 = Tau = 932 UTF-8
Υ = 400 = Upsilon = 933 UTF-8
Φ = 500 = Phi = 934 UTF-8
Χ = 600 = Chi = 935 UTF-8
Ψ = 700 = Psi = 936 UTF-8
Ω = 800 = Omega = 937 UTF-8
Ϡ = 900 = SamPi = 992 UTF-8
code-golf
number
natural-language
Ninguém está aqui
fonte
fonte
123
ser "PKΓ"700
e803
(com zeros como dígitos).Respostas:
Geléia ,
4240 bytesExperimente online! ou verifique todos os casos de teste .
fonte
Pitão,
49484644 bytesExperimente aqui.
Ainda trabalhando para reduzir a função para gerar o alfabeto ... e sim, o gerador é mais do que codificado em 4 caracteres, mas não em bytes.
Veja como a função de geração de alfabeto funciona. Vamos pegar todos os pontos de código e subtrair 913 (o menor valor):
Agora vamos escolher os que não se encaixam no padrão:
Ok, então a estratégia está se formando: gere o intervalo de 0 a 24 (trataremos dos 17 que faltam mais tarde) e insira 75, 71 e 79 nos locais corretos.
Como podemos inserir os valores discrepantes? Pyth tem uma
.i
função nterleave que leva ex.[1,2,3]
ee[4,5,6]
resulta em[1,4,2,5,3,6]
. No entanto, teremos que adicionar alguns espaços reservados, já que obviamente os discrepantes estão distantes. Vamos representar o espaço reservado com X:Certo, então a matriz inferior discrepante começa com quatro
X
s. Podemos agrupar os outliers para cada um deles sendo precedido por quatro seX
ver o que resta?Agora, fazemos outra observação importante: desde que o 79 chega ao fim , pode haver qualquer número de
X
s precedendo-o e qualquer número deX
s seguindo-o também! Isso ocorre porque a intercalação[1,2,3]
e[4,5,6,7,8,9]
resulta em[1,4,2,5,3,6,7,8,9]
note que os elementos extras na segunda matriz terminam no final e, como serão removidos de qualquer maneira, podemos permitir isso com segurança.Isso significa que podemos normalizar isso de modo que todos os valores extremos sejam precedidos por quatro se
X
sucedidos por 6:Ótimo! Agora podemos simplesmente pegar a matriz
[75, 71, 79]
, inserir quatro valores de espaço reservado antes de cada elemento e seis depois e, em seguida, intercalá-la com o intervalo0..24
.Mas espere, o que aconteceu
17
? Lembre-se de que a linha principal de todos esses exemplos está faltando 17. Podemos simplesmente remover os 17 após a intercalação; mas isso deixa em aberto outra possibilidade deliciosamente maligna. Você adivinhou: o valor do espaço reservado ao qual nos referimosX
será 17. Isso nos permite remover os 17 valores externos e todos os valores do espaço reservado de uma só vez.Finalmente! Aqui está o código usado para implementar isso:
fonte
JavaScript (ES6),
120115 bytesA contagem de bytes está usando UTF-8. Tem 88 caracteres. Entrada é um número.
Teste
fonte
Python 3, 118 bytes
fonte
i*"_"and
para evitar o espaço. Eu não teria encontrado isso.Retina , 57 bytes
Transliterar simples com intervalos de caracteres apropriados e
0
exclusão em cada dígito.Experimente online. (Primeira linha adicionada para permitir que todos os casos de teste funcionem juntos.)
Martin também sugeriu este para a mesma pontuação:
fonte
Julia, 138 bytes
Esta é uma função que aceita um número inteiro e retorna uma string.
Para cada dígito na entrada na ordem inversa, obtemos o caractere correspondente a esse dígito a partir da sequência apropriada, depois combinamos os caracteres e invertemos o resultado. Para qualquer dígito que seja 0, simplesmente usamos a string vazia.
fonte
Julia, 84 bytes
Experimente online!
fonte
JavaScript (ES6), 83 caracteres, 110 bytes
fonte
0
as substituem por nada e pensei que elas iriam quebrá-la!Perl 6 , 102 bytes
Experimente online!
fonte
Ruby, 134 bytes
Negócio básico de pesquisa usando módulo. Provavelmente pode ser otimizado em algum lugar, mas Ruby não forçará seqüências de caracteres em números inteiros da maneira que o Javascript pode, haha
fonte