Занимательные задачи PHP
338 subscribers
1 photo
15 links
Ваша цель: решить задачу максимально изящно и просто. Предлагайте свои варианты решения в комментариях. Задачи выходят по будням в 14.00.
Download Telegram
Бесплатный тренинг по хакингу!
Будем изучать защиту SQL баз данных на PHP.

Начинаем уже завтра!

Вступайте для записи:
https://t.me/+nTaE5Nx9qWw3YzZi

Всем пхпшникам обязательно:)
Задача 42
Сложение часов и минут

Напишите функцию, которая корректно будет складывать часы и минуты. Пример:
<?php
func('1ч 20 мин + 50 мин') // 2ч 10 мин
?>
Задача 43
Разбитие строки до пробела

Обрежьте длинную строку так, чтобы ее длина была не более N символов. При этом слова не должны быть разорваны - обрезание всегда проходит по пробелу и новая строка всегда меньше N.
Задача 44
Подсчет цифр в числах

Подсчитайте суммарное количество цифр в числах от 1 до 1 000 000.
Задача 45
Подсчет многомерного массива

Дан многомерный массив. Подсчитайте количество элементов, не являющихся массивами, во всех уровнях вложенности.
Задача 46
Сложность пароля

Проверьте сложность пароля. Сложный пароль - это пароль с маленькими латинскими, большими латинскими буквами, цифрами и спецсимволами. Придумайте свои критерии, например, не должно идти несколько одинаковых символов подряд и так далее.
При решении задачи указывайте свои критерии также.
Задача 47
Проникновение массивов

Напишите функцию, которая параметрами будет принимать два массива:
<?php
$res = func([1, 2, 3], ['a', 'b', 'c']);
?>

А в качестве результата сливать эти массивы таким образом:
<?php
var_dump($res); // [1, 'a', 2, 'b', 3, 'c']
?>
Задача 48
Частотная сортировка массива

Написать функцию, на вход которой подается массив с числовыми элементами. Функция должна вернуть отсортированный массив по частоте повтора элементов в нем.

Пример. На вход функции подаем следующий массив:
[5, 9, 2, 4, 1, 2, 5, 8, 2, 2, 8, 4, 5]

В результате после сортировки получим следующий массив:
[2, 2, 2, 2, 5, 5, 5, 4, 4, 8, 8, 9, 1]
Задача 49
Найти все целые решения

Найдите все ЦЕЛЫЕ решения уравнения x^y = y^x.
Задача 50
Дружественные числа

Сделайте функцию, которая будет проверять, являются ли два числа дружественными.
Задача 51
Совершенные числа

Сделайте функцию, которая будет проверять, является ли число совершенным.
Задача 52
Рост массива с исключением

Дан массив с числами. Проверьте, что элементы массива выстроены по возрастанию. Допустимо, однако, одно место, в котором следующий элемент меньше предыдущего.

Задача с реального проекта, анализ ставок тотализатора, дана в упрощенном виде.
Задача 53
Увеличение цены в тексте

Дана строка с текстом. В этом тексте есть цены в долларах:
'текст 10$ текст 20$';

Найдите все цены в этой строке и увеличьте их на 10%:
'текст 11$ текст 22$';
Задача 54
Добрый unique

Сделайте функцию, которая будет удалять дубли, встречающиеся более 3-х раз.
Задача 55
Уровень вложенности многомерного массива

Дан произвольный многомерный массив. Определите максимальный уровень вложенности этого массива.
Задача 56
N случайных элементов массива

Дан массив. Запишите в другой массив N случайных элементов из него так, чтобы один элемент был использован только один раз.
Задача 57
Количество единиц

Найдите суммарное количество единиц в числах от 1 до 100.
Задача 58
Подсчет слов, начинающихся на букву

Напишите функцию, которая подсчитает, сколько слов в строке начинаются на заданную букву.
Задача 59
Варианты товаров

Дан массив товаров с ценами. Дана сумма. Выведите все возможные комбинации товаров, которые можно купить на эту сумму.
Задача 60
Треугольник Паскаля

Нарисуйте в браузере треугольник Паскаля произвольного размера.
Задача 61
Имена файлов в транслит

Напишите скрипт, который считывает название файлов из папки и, если эти названия на русском, меняет их на транслит.