O software de modelagem 3D usa principalmente o Mapeamento UV para mapear texturas em um objeto 3D. Os valores válidos para U e V geralmente estão localizados em um [0..1]intervalo inclusivo .
Desafio
Você comprou um novo software de modelagem 3D que é super fácil de usar. No entanto, há um problema: ele adiciona ou subtrai um número inteiro aleatório dos valores UV. Sua tarefa é criar um programa ou uma função que modifique um valor de entrada para obter um valor flutuante em um [0..1]intervalo inclusivo .
O flutuador resultante deve ter a mesma parte fracionária do original e estar o mais próximo possível do original. Como ambos 0e 1estão no intervalo de saída, qualquer número inteiro 0 ou menos deve ser alterado para 0 e qualquer número inteiro 1 ou maior deve ser alterado para 1.
Um exemplo de algoritmo em JavaScript:
function modFloat(input) {
while (input < 0 || input > 1) {
if (input < 0) input += 1;
if (input > 1) input -= 1;
}
return input;
}
Regras
- A entrada é um único número inteiro ou valor flutuante. Qualquer formato razoável é permitido desde que seja especificado em sua resposta.
- A saída deve ser uma representação decimal de um valor flutuante.
- A precisão da saída deve ter pelo menos as mesmas casas decimais da entrada.
- Zeros à direita são permitidos.
- Certifique-se de que seu código escolha corretamente qual dos 0 ou 1 deve ser gerado para entradas inteiras.
Casos de teste
Input | Output
------------+---------
-4 | 0
-1 | 0
0 | 0
1 | 1
2 | 1
1.0001 | 0.000100
678.123456 | 0.123456
-678.123456 | 0.876544
4.5 | 0.5
Isso é código-golfe , então o código mais curto em bytes vence!
any reasonable input format is allowed, então eu diria "Por que não?".