将数字递归递归

时间:2016-11-22 10:48:17

标签: php

我有这段代码:

public function divideNbPlay($nb_play){
    if($nb_play % 400 !== 0){
        $nb_play = divideNbPlay($nb_play % 400);
    }
    return $nb_play;
}

我想得到其余的分区,例如,如果我有

nb_play = 590, I want to return 190
nb_play = 806, I want to return 6
....

4 个答案:

答案 0 :(得分:3)

无需在函数内使用divideNbPlay函数。 Modulus运算符返回除数的余数。

function divideNbPlay($nb_play){
    $nb_play = $nb_play % 400;
    return $nb_play;
}

$nb_play = 806;
echo divideNbPlay($nb_play);

答案 1 :(得分:1)

你不需要所有的答案。

function divideNbPlay($nb_play){
    return $nb_play % 400;
}

答案 2 :(得分:0)

您不需要递归来获得所需的结果。这是输出结果的解决方案:

<?php
function divNum($num) {
    return $num%400;
}

echo divNum(590);
?>

答案 3 :(得分:0)

当你真的,真的,真的希望有一个递归解决方案时,你不应该使用%运算符,而是使用减号运算符。

你需要做的是从$ nb_play中递归减去400,直到余数低于400.你可以返回剩余的值。

示例代码(未测试):

public function divideNbPlay($nb_play){

    $nb_play = $nb_play - 400;

    if($nb_play > 400){
        divideNbPlay($nb_play);
    } else {
       return $nb_play;
    }
}