Heim  >  Artikel  >  Backend-Entwicklung  >  PHP implementiert eine Methode, um festzustellen, ob es sich um eine kontinuierliche Multiplikation einer Zahlenfolge handelt

PHP implementiert eine Methode, um festzustellen, ob es sich um eine kontinuierliche Multiplikation einer Zahlenfolge handelt

墨辰丷
墨辰丷Original
2018-05-21 10:02:551420Durchsuche

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 &#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)

Verwandte Empfehlungen:

PHP implementiert Excel langenumerische Zeichenfolgeangezeigt als Code-Sharing in wissenschaftlicher Notation

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!

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