agr*_*riz 1 php recursion numbers
$result = reduce($number);
function reduce($number) {
$new_number = 0;
if($number < 10) {
return $number;
}
$q = floor($number / 10 );
$r = $number % 10;
$new_number = $q + $r;
if($new_number <= 9) {
return $new_number;
}
else {
reduce($new_number);
}
}
Run Code Online (Sandbox Code Playgroud)
我想按数字求和
例如,如果我通过了 10,它应该返回 1+0 = 1
如果我通过了 10,则这有效
,但当我通过 100 时,则不起作用。
这应该适合你:
只需将您的数字分成一个数组str_split(),然后使用array_sum()将所有数字加在一起。
echo array_sum(str_split($number));
Run Code Online (Sandbox Code Playgroud)
编辑:
如果您不需要校验和,但只需要一位数,那么您也不必编写那么多代码。只需一遍又一遍地调用该函数,直到array_sum()等于或小于 9。
function reduceToOneSingleDigit($result) {
$result = str_split($result);
while(array_sum($result) > 9)
return reduceToOneSingleDigit(array_sum($result));
return array_sum($result);
}
echo reduceToOneSingleDigit(99);
Run Code Online (Sandbox Code Playgroud)