我很难想到这个问题的解决方案,不涉及循环.基本上,如果某些东西大于某个任意数字,它就会循环.假设64是数字.
0 => 0
32 => 32
64 => 64
96 => 32
128 => 64
160 => 32
192 => 64
Run Code Online (Sandbox Code Playgroud)
等等.
我当前正在做的方式涉及一个while循环,它检查该值是否超过64,如果是,则从中减去64.还有另一种不涉及循环的方法吗?
我正在使用C#WinForms.
将值修改为64,这是一个O(1)操作.像这样:
int number;
// number is initialized
number %= 64;
Run Code Online (Sandbox Code Playgroud)
public static int filterNumber(int x, int arbitraryNumber) {
if (x < arbitraryNumber) {
return x;
}
int result = x % arbitraryNumber;
if (result == 0) {
return arbitraryNumber;
}
return result;
}
Run Code Online (Sandbox Code Playgroud)