2016-11-22 42 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; 
    } 
}