За последние 24 часа нас посетили 22066 программистов и 1681 робот. Сейчас ищут 1670 программистов ...

Помогите написать программу

Тема в разделе "Сделайте за меня", создана пользователем ЕкатеринаPav, 15 окт 2020.

  1. ЕкатеринаPav

    ЕкатеринаPav Новичок

    С нами с:
    15 окт 2020
    Сообщения:
    2
    Симпатии:
    0
    Дана строка. Удвоить каждый символ строки. К каждой цифре строки добавьте 5. Выведите зашифрованную строку. Напишите соответствующий скрип, который будет расшифровывать такие строки.
    Вообще трудно далась эта тема, буду благодарна за помощь.
     
  2. amberson

    amberson Активный пользователь

    С нами с:
    23 июл 2020
    Сообщения:
    65
    Симпатии:
    16
    Интересная задача. Казалось бы на циклы, разбиение по символам и так далее. Вышло без циклов.
    PHP:
    1. $in = 'j30h33334g5d7j964ddncj46gg5h7gggg1234567890';
    2. //$in = 'Привет мир 28476 как847дела';
    3.  
    4. $hash = join('', array_map(function($sym) {
    5.   return is_numeric($sym) ? $sym + 5 : $sym.$sym;
    6. }, str_split($in)));
    7.  
    8. $out = preg_replace_callback('#1[0-4]|[5-9]|[^\d]{2}#', function($m) {
    9.   return is_numeric($m[0]) ? $m[0] - 5 : substr($m[0], 0, 1);
    10. }, $hash);
    11.  
    12. echo "\n";
    13. print_r($in);
    14.  
    15. echo "\n";
    16. print_r($out);
    17.  
    18. echo "\n";
    19. print_r($hash);
    PHP:
    1. j30h33334g5d7j964ddncj46gg5h7gggg1234567890
    2. j30h33334g5d7j964ddncj46gg5h7gggg1234567890
    3. jj85hh88889gg10dd12jj14119ddddnnccjj911gggg10hh12gggggggg678910111213145
    4.  
    5. Привет мир 28476 как847дела
    6. Привет мир 28476 как847дела
    7. �П��р��и��в��е��т� �м��и��р� 71391211 �к��а��к�13912�д��е��л��а�
     
    artoodetoo нравится это.