3 回答
TA贡献2080条经验 获得超4个赞
public int getNextNumber(int[] array, int index) {
index = Math.floorMod(index, array.length) + 1;
return array[index];
}
我不懂 PHP,但我想这是准确的:
function getNextNumber(&$array, int $index) {
$index = fmod($index, count(array)) + 1
return $array[$index]
TA贡献1796条经验 获得超4个赞
代码
function getKey($current, $step): int
{
$keys = [1,2,3,4,5,6,7];
$currentKey = array_search($current, $keys);
$size = count($keys);
// normalize step offset
$step = ($step % $size) + $size;
// ^-----------^ ^-----^
// │ └ move possible negative to positive
// └ get a value from -7 to +7
// add offset for current key
$newKey = ($currentKey + $step) % $size;
// ^-----------------^ ^-----^
// │ └ wrap around in case we exceed $size
// └ add normalized step offset to new element to current
return $keys[$newKey];
}
// Tests
echo getKey(1,-1) . PHP_EOL;
echo getKey(3,1) . PHP_EOL;
echo getKey(7,1) . PHP_EOL;
echo getKey(7,15) . PHP_EOL; // same as +1
echo getKey(1,-8) . PHP_EOL; // same as -1
echo getKey(1,-15) . PHP_EOL; // same as -1
输出
7
4
1
1
7
7
工作示例。
TA贡献1825条经验 获得超6个赞
这个函数就可以解决问题,你应该使用 mod 来查找数字(对于 php 和 java 来说是“%”);
function myNextNumber($i){
if($i>6){
return ($i%7)+i;
}
return $i+1;
}
function myPreviousNumber($i){
if($i>8){
return $i%7-1;
}
if($i == 1){
return 7;
}
return $i-1;
}
function myNextNumber($i, $param){
if($param == 1){
return myNextNumber($i);
}
if($param == -1){
return myPreviousNumber($i);
}
return 'Invalit Param';
}
- 3 回答
- 0 关注
- 98 浏览
添加回答
举报