2016-11-22 97 views
-1

我有这样的代码:分割数递归

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 
.... 
+0

这正是你的代码已经在做? – PeeHaa

+0

为什么你需要为此递归? – iainn

+0

@PeeHaa,我不明白 –

回答

3

无需使用函数内divideNbPlay功能。 Modulus运算符返回分割的余数。

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

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

不需要你已经有了答案。

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

你不需要递归就可以得到你想要的结果。这里是一个输出结果的解决方案:

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

echo divNum(590); 
?> 
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; 
    } 
}