3D 모델링 소프트웨어는 주로 UV 매핑 을 사용 하여 텍스처를 3D 객체에 매핑 합니다. U와 V의 유효한 값은 일반적으로 포함 [0..1]범위에 있습니다.
도전
사용하기 매우 쉬운 새로운 3D 모델링 소프트웨어를 구입했습니다. 그러나 UV 값에서 임의의 정수를 더하거나 뺍니다. 태스크는 입력 값을 수정하여 포함 [0..1]범위 의 부동 소수점 값을 얻는 프로그램 또는 함수를 작성하는 것 입니다.
결과 플로트는 원본과 동일한 소수 부분을 가져야하며 가능한 한 원본에 가깝습니다. 0및 모두 1출력 범위에 있으므로 0 이하의 정수는 0으로 변경되고 1 이상의 정수는 1로 변경되어야합니다.
JavaScript의 알고리즘 예 :
function modFloat(input) {
while (input < 0 || input > 1) {
if (input < 0) input += 1;
if (input > 1) input -= 1;
}
return input;
}
규칙
- 입력은 단일 정수 또는 부동 소수점 값입니다. 귀하의 답변에 명시된 한 모든 합리적인 형식이 허용됩니다.
- 출력은 부동 소수점 값의 10 진수 표현이어야합니다.
- 출력 정밀도는 입력과 소수점 이하 자릿수 이상이어야합니다.
- 후행 0이 허용됩니다.
- 코드가 정수 입력에 대해 출력 할 0 또는 1을 올바르게 선택했는지 확인하십시오.
테스트 사례
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
이것은 code-golf 이므로 바이트 단위의 가장 짧은 코드가 이깁니다!
any reasonable input format is allowed이므로 "왜 안돼?"라고 말하고 싶습니다.