Quando você arredondar um número, se o próximo dígito for >= 5
adicionar 1. Por exemplo:
3.1415926535 rounded to 1dp is 3.1
3.1415926535 rounded to 4dp is 3.1416 <-- Note the 5 changed to 6
3.1415926535 rounded to 5dp is 3.14159
3.1415926535 rounded to 9dp is 3.141592654 <-- Note the 3 changed to 4
O seu desafio é receber um número inteiro como entrada e gerar o número de casas decimais antes do qual você teria que arredondar a raiz quadrada do número - ou seja, o número de casas decimais antes de >= 5
ocorrer um dígito .
O número inteiro estará entre 0 e 100.000, inclusive, portanto, para o caso de margem de 59752, você precisa suportar 17 pontos decimais (para verificar o dia 17).
Se a linguagem de programação não puder alterar o número de pontos decimais, você poderá exibir um "?" mensagem para o usuário.
Exemplo:
Input Root Output
5 -> 2.23 606797749979 -> 2
41 -> 6.40312423 743284 -> 8 (Largest gap under 100)
596 -> 24.4131112314 674 -> 10 (Largest gap under 1000)
59752 -> 244.44222221212112029 -> 16 (Largest gap under 100000)
Faça o que quiser em quadrados perfeitos.
Isso é código-golfe, então o código mais curto vence.
Para qualquer pessoa interessada, o número 310.617 é o maior abaixo de 1.000.000 e tem 18 antes de você chegar a um dígito >= 5
.
Respostas:
CJam, 17 bytes
Experimente online.
fonte
Pitão, 13 bytes
Suíte de teste
Comece com
Q
igual à entrada. Em cada etapa do tempo, multipliqueQ
por 100, calculado comochr('d')
. Pegue sua raiz quadrada. Faça este mod 10. Se o resultado for maior que5
, encerre. Imprima o número de iterações necessárias para finalizar, indexadas em 0.Em detalhe:
fonte
CJam,
292628 bytesExperimente online.
Coloca um "?" se o número não aparecer, pode ser arredondado (quadrado perfeito ou muito longo).
fonte
Pitão, 22 bytes
Explicação
Estou absolutamente certo de que isso pode ser jogado. Se a entrada não tiver um dígito maior que 4, ela imprimirá -1. Suporta 17dp.
fonte
Javascript, 59 bytes
Retorna
?
para 59752 porque o JavaScript usa apenas precisão dupla.fonte
Shell do Linux, 52 bytes
Eu tentei uma
dc
solução pura , mas falhei. A precisão é ajustável (primeiro número).Como o OP especifica gentilmente que "você pode fazer o que quiser em quadrados perfeitos", nesse caso, esta solução gera a precisão + 1, neste caso 35.
fonte
Mathematica 60 bytes
Exemplo
fonte
Apply
.Ruby, 46 bytes
Isso pode não ser válido, pois cabe apenas 16 dígitos.
fonte
nil
, como nenhum dígito após 4 está na sequência inteira. Pode depender da versão ruby.