我有 php 和 javascript 函数,它们接收整数并返回 1 到 4 之间的值, 这是我的函数的工作原理:
- 输入 1 -> 输出 1,
- 输入 2 -> 输出 2,
- 输入 3 -> 输出 3,
- 输入 4 -> 输出 4,
- 输入 5 -> 输出 1,
- ...
- 输入 9 -> 输出 1,
- ...
这是我当前的功能:
function getGid(pid){
gid = 0;
while (pid > 4 ) {
pid = pid-4;
gid++;
}
return gid;
}
我想知道我是否选择了一个好的方法,或者是否有其他更简单的方法? 谢谢!
最佳答案
首先,PHP中的变量以 $
开头
接下来,编程中的计数是从0开始的,而不是从1开始的。因此,最快速、最优雅的解决方案是
function gid($pid) {
return $pid % 4;
}
echo gid(1); // outputs 1
echo gid(2); // outputs 2
echo gid(3); // outputs 3
echo gid(4); // outputs 0
echo gid(5); // outputs 1
echo gid(6); // outputs 2
echo gid(7); // outputs 3
echo gid(8); // outputs 0
我会坚持下去,但你不想要通常的 0,1,2,3
,你想要4
而不是0
,所以...
function gid($pid) {
return ($pid % 4 == 0)? 4 : $pid % 4 ;
}
echo gid(1); // outputs 1
echo gid(2); // outputs 2
echo gid(3); // outputs 3
echo gid(4); // outputs 4
echo gid(5); // outputs 1
echo gid(6); // outputs 2
echo gid(7); // outputs 3
echo gid(8); // outputs 4
您的 Javascript 函数将类似:
function gid(pid) {
return (pid % 4 == 0)? 4 : pid % 4 ;
}
关于javascript - 获取从多个(1 到 4)派生的基数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35596376/