Perangkat lunak pemodelan 3D terutama menggunakan Pemetaan UV untuk memetakan tekstur ke objek 3D. Nilai yang valid untuk U dan V biasanya terletak dalam [0..1]rentang inklusif .
Tantangan
Anda membeli perangkat lunak pemodelan 3D baru yang super mudah digunakan. Namun ada satu masalah dengan itu: ia menambah atau mengurangi bilangan bulat acak dari nilai UV. Tugas Anda adalah membuat program atau fungsi yang mengubah nilai input untuk mendapatkan nilai float dalam [0..1]rentang inklusif .
Float yang dihasilkan harus memiliki bagian fraksional yang sama seperti aslinya, dan sedekat mungkin dengan aslinya. Karena keduanya 0dan 1berada dalam kisaran output, bilangan bulat 0 atau kurang harus berubah menjadi 0, dan bilangan bulat 1 atau lebih besar harus berubah menjadi 1.
Contoh algoritma dalam JavaScript:
function modFloat(input) {
while (input < 0 || input > 1) {
if (input < 0) input += 1;
if (input > 1) input -= 1;
}
return input;
}
Aturan
- Input adalah bilangan bulat tunggal atau nilai float. Format wajar apa pun diizinkan selama ditentukan dalam jawaban Anda.
- Output harus berupa representasi desimal dari nilai float.
- Ketepatan output harus paling tidak sama dengan desimal sebagai input.
- Angka nol di belakang diperbolehkan.
- Pastikan kode Anda memilih yang mana dari 0 atau 1 yang akan dikeluarkan untuk input integer.
Uji kasus
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
Ini adalah kode-golf , jadi kode terpendek dalam byte menang!
any reasonable input format is allowed, jadi saya akan mengatakan "Kenapa tidak?".