Heim >Backend-Entwicklung >PHP-Tutorial >So verwenden Sie PHP-Code, um zu überprüfen, ob eine Zahlenfolge zu einer Zahlenfolge verbunden ist

So verwenden Sie PHP-Code, um zu überprüfen, ob eine Zahlenfolge zu einer Zahlenfolge verbunden ist

巴扎黑
巴扎黑Original
2017-08-15 11:08:171814Durchsuche

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 im Detail 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 &#39;<br/>&#39; . $a . &#39;*&#39; . $b . &#39;=&#39; . $n . &#39;->&#39; . $c . &#39;<br/>&#39;;

    if($c){
     $formula[] = $a . &#39;*&#39; . $b . &#39;=&#39; . $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) . &#39;<br/>&#39;;
  }

 }

 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)

Das obige ist der detaillierte Inhalt vonSo verwenden Sie PHP-Code, um zu überprüfen, ob eine Zahlenfolge zu einer Zahlenfolge verbunden ist. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn