我有一项任务,必须根据值达到的“级别”数量来计算“赚取的积分”数量。
假设每个级别的增量范围为 5。换句话说,如果$x = 5
这意味着:
1 级为 1、2、3、4、5,
2 级为 6、7、8、9、10 等
每次输入值 ( $a
) 进入一个新级别,$y = 10
都会获得 10 分 ( )。
如果$a
是2
,则该数字属于第一个范围,因此可以获得10
积分。
而且,$a = 5
赚了10
,$a = 7
赚了20
,还$a = 12
赚了30
。
我已经使用 while 循环编写了一些代码,但由于时间复杂性,我不想使用 while 循环。
$a = 11;
$x = 5;
$y = 10;
$count = 100/$x;
$i = 1;
$c = 1 ;
while($i<=$count){
$min = $c ;
$max = $c = $c + ($x -1);
if (in_array($a, range($min, $max))) {
echo "\n result= " . $i * $y;
break;
}
$c++;
$i++;
}
上面代码的输出是正确的30,但我想找到一种更有效的技术。
茅侃侃
慕神8447489