Algorithmic tasks
- Посетить тестовую страничку по адресу https://max3w.pp.ua/trainee-task2/
- Запустить на localhost файл index.php
- В консоли запускается командой: >php index.php (В моем сервере это php /var/www/max3w.pp.ua/trainee-task2/index.php)
php -r "require '/var/www/max3w.pp.ua/trainee-task2/index.php'; magic(array(2, 5, 7), 2);"
Получим ответ:***Волшебство случается***
php -r "require '/var/www/max3w.pp.ua/trainee-task2/index.php'; all_eq(array('qweasdqweas', 'q', 'rteww', 'ewqqqqq'));"
Получим ответ***Array ( [0] => qweasdqweas [1] => q__________ [2] => rteww______ [3] => ewqqqqq____ ) ***
php -r "require '/var/www/max3w.pp.ua/trainee-task2/index.php'; set_gen(array(1, 1, 3, 3, 1));"
Получим такой себе ответ:***Array ( [0] => [1] => 1 [2] => 11 [3] => 111 [4] => [5] => 3 [6] => 33 ) ***
Добавим функцию очистки пустых ключей, получим:***Array ( [1] => 1 [2] => 11 [3] => 111 [5] => 3 [6] => 33 ) ***
1) Дана последовательность случайных цифр любой длины и «волшебное» положительное число, больше нуля. Напишите функцию magic(), принимающую эти аргументы, и выясните, можно ли разделить сумму квадратов последовательности на «волшебное» число без остатка. В качестве ответа возвращается «Волшебство случается» в случае успеха или «Никакого волшебства», если разделить нельзя.
### Тесты
- magic(2, 5, 7, k=5) Никакого волшебства
- magic(2, 5, 7, k=39) Волшебство случается
- magic(2, 5, 7, k=2) Волшебство случается
2) На входе имеем список строк разной длины. Необходимо написать функцию all_eq(lst), которая вернет новый список из строк одинаковой длины. Длину итоговой строки определяем исходя из самой большой из них. Если конкретная строка короче самой длинной, дополнить ее нижними подчеркиваниями с правого края до требуемого количества символов. Расположение элементов начального списка не менять.
### Тесты
- all_eq(['крот', 'белка', 'выхухоль']) -> ['крот____', 'белка___', 'выхухоль']
- all_eq(['a', 'aa', 'aaa', 'aaaa', 'aaaaa']) -> ['a____', 'aa___', 'aaa__', 'aaaa_', 'aaaaa']
- all_eq(['qweasdqweas', 'q', 'rteww', 'ewqqqqq']) -> ['qweasdqweas', 'q__________', 'rteww______', 'ewqqqqq____']
3) Предоставлен список натуральных чисел. Требуется сформировать из них множество. Если какое-либо число повторяется, то преобразовать его в строку по образцу: например, если число 4 повторяется 3 раза, то в множестве будет следующая запись: само число 4, строка «44» (второе повторение, т.е. число дублируется в строке), строка «444» (третье повторение, т.е. строка множится на 3). Реализуйте вывод множества через функцию set_gen().
### Тесты // последовательность вывода не имеет значения
- list_1 = [1, 1, 3, 3, 1] -> set_gen(list_1) -> {1, 3, '111', '33', '11'}
- list_2 = [5, 5, 5, 5, 5, 5, 5] -> set_gen(list_2) -> {'5555555', 5, '55', '55555', '5555', '555555', '555'}
- list_3 = [2, 2, 1, 2, 2, 5, 6, 7, 1, 3, 2, 2]->set_gen(list_3) -> {1, 2, 3, 5, 6, 7, '22', '2222', '22222', '222', '11', '222222'}