Heim > Artikel > Backend-Entwicklung > PHP implementiert eine Methode, um festzustellen, ob es sich um eine kontinuierliche Multiplikation einer Zahlenfolge handelt
Dieser Artikel stellt hauptsächlich ein Beispiel für die Verwendung von PHP vor, um festzustellen, ob es sich um eine kontinuierliche Multiplikation einer Zahlenfolge handelt. Der Artikel stellt es ausführlich anhand des Beispielcodes vor, der für alle Freunde einen gewissen Referenz- und Lernwert hat Wer es braucht, kann dem Herausgeber folgen und studieren.
Beschreibung
Bei einer gegebenen Zahlenfolge A müssen Sie feststellen, ob A eine aufeinanderfolgende Multiplikation von Zahlen ist. Die Definition einer Zeichenfolge besteht darin, dass eine Zahlenfolge in mehrere Zahlen aufgeteilt werden kann und die folgende Zahl (beginnend mit der N-ten Zahl) das Produkt der beiden vorherigen Zahlen ist.
Beispiel
(1) '122' --- kann aufgeteilt werden in [1|2|2]
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 (Multiplizieren Sie die Zahlenfolge )
(4) '234547898185239692' --- kann aufgeteilt werden in [23454|7898|185239692]
Ergebnis: 23454×7898=185239692 (multiplizierte Zahlenfolge )
(5) '113' kann in [1|1|3] aufgeteilt werden
Ergebnis: 1×1 != 3 (nicht aufeinanderfolgende Multiplikationszahl string)
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:
Wie bestimmt PHP, ob es sich um eine kontinuierliche Multiplikation handelt?numerische Zeichenfolge
So verwenden Sie PHP-Code, um zu überprüfen, ob eine Zahlenfolge zu einer Zahlenfolge verbunden ist
Das obige ist der detaillierte Inhalt vonPHP implementiert eine Methode, um festzustellen, ob es sich um eine kontinuierliche Multiplikation einer Zahlenfolge handelt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!