Проблема кодирования программы, которая делает число с четными цифрами другого номера, но в обратном направлении - PullRequest
0 голосов
/ 15 января 2020

Мне нужно сделать несколько блоков кодирования, и я застрял в 3 из них. Простите за мой плохой английский sh.

Прежде всего, как сказано в резюме. Я попробовал это, он показывает четные цифры, но также показывает тонну «0».

<?php

$n = 33421;
$m = "";

while ($n != 0) {
    if (($n % 2 == 0) && ($n / 10) != 0) {
        $temp = strval($n % 10);
        $m .= $temp;
    }
    $n = $n / 10;
}

echo $m;
?

И у меня есть еще 2 дела, но я не знаю, как это сделать, и надеюсь, что кто-то может помочь.

I don't really know how this is called in english

A system of equations with real numbers

Ответы [ 3 ]

0 голосов
/ 15 января 2020

Другим решением будет использование регулярного выражения для удаления всех чисел шансов, а затем обратная выходная строка.

$n = 33421;
$m = strrev(preg_replace("/[13579]/", "", $n));
echo $m; //24
0 голосов
/ 16 января 2020

Аналогично решению str_split и foreach с использованием preg_split и array_walk

<?php
    /**
    * Split string into array
    * - walk the array and test values as multiples of 2
    * - pass $result by reference
    * - append $result after $value to reverse the resulting string
    */
    $number = 33421;
    $result = '';
    $arr = preg_split('//',$number,-1,PREG_SPLIT_NO_EMPTY);
    array_walk($arr, function(&$value) use (&$result) {
        if((int)$value % 2 == 0){
            $result = $value.$result; 
        }
    });
    echo $result;
?>
0 голосов
/ 15 января 2020

Решение проблемы, для которой вы показываете код - для отображения четных цифр в обратном порядке.

Этот код сначала разбивает число на отдельные элементы, используя str_split(), который принимает строку и разбивает ее на отдельные цифры. Затем для каждого di git он проверяет, является ли он четным, и добавляет его в начало результата (обращая цифры) ...

$n = 33421;
$m = "";

foreach ( str_split($n) as $digit ) {
    if ( $digit % 2 == 0 )  {
        $m = $digit.$m;
    }
}
echo $m;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...