Heim > Artikel > Backend-Entwicklung > So ermitteln Sie, ob eine Zahlenfolge in PHP fortlaufend multipliziert wird
Bei einer gegebenen Zahlenfolge A müssen Sie feststellen, ob A eine fortlaufende Multiplikationszahlenfolge ist Zahlen (ab dem N-ten, beginnend mit einer Zahl) ist das Produkt der beiden vorherigen Zahlen. In diesem Artikel wird hauptsächlich anhand eines Beispielcodes erläutert, wie Sie mithilfe von PHP feststellen können, ob es sich um eine kontinuierliche Multiplikation einer Zahlenfolge handelt Wenn Sie es benötigen, können Sie dem Herausgeber folgen, um gemeinsam zu lernen.
(1) '122' --- kann in [1|2|2] aufgeteilt werden
Ergebnis: 1×2=2 (Zahlenzeichenfolge multiplizieren)
(2) '1122242' --- kann in [11|22|242] aufgeteilt werden
Ergebnis: 11×22=242 (Zahlenzeichenfolge multiplizieren)
(3) '1224832256' --- kann aufgeteilt werden in [1|2|2|4|8|32|256]
Ergebnis: 1×2 =2, 2×2=4, 2×4=8, 4×8=32, 8×32=256 (die Zahlenfolge multiplizieren)
(4) '234547898185239692' --- kann aufgeteilt werden in [23454|7898|185239692]
Ergebnis: 23454×7898=185239692 (Zahlenzeichenfolge multiplizieren)
(5) '113' kann sein aufgeteilt in [1|. 1|3]
Ergebnis: 1×1 != 3 (nicht fortlaufende multiplizierte Zahlenfolge)
Code
/** * 判断是否连乘数字串函数 * @param $strNum * @return bool **/ function isExec($strNum) { $str = (string)$strNum; for ($i = 0; $i < strlen($str); $i++) { $k = 1; for ($j = $i + 1; $j < strlen($str); $j++) { $a_i = 0; $b_i = $i + 1; $p_i = $i + 1; $m_i = $k++; $c_i = $b_i + $m_i; $res = false; $formula = []; while (1) { $a = substr($str, $a_i, $p_i); $b = substr($str, $b_i, $m_i); $n = $a * $b; $c = substr($str, $c_i, strlen($n)); //echo '<br/>' . $a . '*' . $b . '=' . $n . '->' . $c . '<br/>'; if($c){ $formula[] = $a . '*' . $b . '=' . $n; } if ($c === false || $c === "") { break; } if (intval($n) == intval($c)) { $p_i = strlen($b); $m_i = strlen($n); $a_i = $b_i; $b_i = $c_i; $c_i = $b_i + $m_i; $res = true; } else { $res = false; break; } } if ($res === true) { print_r($formula); return true; } //var_dump($res) . '<br/>'; } } return false; }
Ausführen
var_dump(isExec('1224832256'));
//运行结果 Array [ [0] => 1*2=2 [1] => 2*2=4 [2] => 2*4=8 [3] => 4*8=32 [4] => 8*32=256 ] bool(true)
var_dump(isExec('234547898185239692'));
//运行结果 Array [ [0] => 23454*7898=185239692 ] bool(true)
var_dump( isExec('1122242'));
//运行结果 Array [ [0] => 11*22=242 ] bool(true)
var_dump(isExec('11234'));
//运行结果 bool(false)
Verwandte Empfehlungen :
So verwenden Sie PHP-Code, um zu überprüfen, ob eine Zahlenfolge zu einer Zahlenfolge verbunden ist
Das obige ist der detaillierte Inhalt vonSo ermitteln Sie, ob eine Zahlenfolge in PHP fortlaufend multipliziert wird. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!