Skip to content

max3w/trainee-task2

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 

Repository files navigation

trainee-task2

Algorithmic tasks

Как запускать?

  1. Посетить тестовую страничку по адресу https://max3w.pp.ua/trainee-task2/
  2. Запустить на localhost файл index.php
  3. В консоли запускается командой: >php index.php (В моем сервере это php /var/www/max3w.pp.ua/trainee-task2/index.php)

Отдельный запуск 3 функций с параметрами выполняется командами:

  1. php -r "require '/var/www/max3w.pp.ua/trainee-task2/index.php'; magic(array(2, 5, 7), 2);"
    Получим ответ:
    ***Волшебство случается***
  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____
    )
    ***
  3. 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

1) Дана последовательность случайных цифр любой длины и «волшебное» положительное число, больше нуля. Напишите функцию magic(), принимающую эти аргументы, и выясните, можно ли разделить сумму квадратов последовательности на «волшебное» число без остатка. В качестве ответа возвращается «Волшебство случается» в случае успеха или «Никакого волшебства», если разделить нельзя.

### Тесты

  • magic(2, 5, 7, k=5) Никакого волшебства
  • magic(2, 5, 7, k=39) Волшебство случается
  • magic(2, 5, 7, k=2) Волшебство случается

Задачка 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

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'}

About

Algorithmic tasks

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages