3D modelleme yazılımı, dokuları bir 3D nesneye eşlemek için esas olarak UV Eşleme kullanır . Hem U hem de V için geçerli değerler genellikle bir kapsayıcıda bulunur[0..1]
aralıkta bulunur.
Meydan okuma
Kullanımı son derece kolay olan yeni bir 3D modelleme yazılımı satın aldınız. Ancak bununla ilgili bir sorun var: UV değerlerinden rastgele bir tam sayı ekler veya çıkarır. Göreviniz, kapsayıcı bir [0..1]
aralıkta kayan değer elde etmek için bir giriş değerini değiştiren bir program veya işlev oluşturmaktır .
Ortaya çıkan şamandıra, orijinal ile aynı fraksiyonel kısma sahip olmalı ve orijinaline mümkün olduğunca yakın olmalıdır. Her ikisi de 0
ve 1
çıkış aralığında olduğundan, 0 veya daha küçük tamsayılar 0 ve daha büyük olan 1 veya daha büyük tamsayılar 1 olmalıdır.
JavaScript'te örnek bir algoritma:
function modFloat(input) {
while (input < 0 || input > 1) {
if (input < 0) input += 1;
if (input > 1) input -= 1;
}
return input;
}
kurallar
- Giriş tek bir tam sayı veya kayan değerdir. Cevabınızda belirtildiği sürece makul biçimlere izin verilir.
- Çıktı, bir kayan nokta değerinin ondalık bir temsili olmalıdır.
- Çıkış hassasiyeti, girişle en az ondalık basamak olmalıdır.
- Sondaki sıfırlara izin verilir.
- Kodunuzun, tamsayı girişleri için 0 veya 1'den hangisinin çıktısını seçtiğinden emin olun.
Test senaryoları
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
Bu kod golf , bu yüzden bayt içindeki en kısa kod kazanır!
any reasonable input format is allowed
, bu yüzden "Neden olmasın?"