<?php
function solution() {
$sequence = range(1, 100);
function odd($var) {
return $var & 1;
}
$sequence = array_filter($sequence, "odd");
$sequence = array_chunk($sequence, 2);
function add($carry, $item) {
return $carry += $item;
}
function par($array) {
return array_reduce($array, "add");
}
$sequence = array_map("par", $sequence);
function binary($item) {
$binary = decbin($item);
return substr_count($binary, '0') == substr_count($binary, '1');
}
$sequence = array_filter($sequence, "binary");
function carry($carry, $item) {
return $carry += substr_count(decbin($item), '0');
}
return array_reduce($sequence, "carry");
}
echo "<pre>";
print_r(solution());
// https://repl.it/B5uC
// https://repl.it/B5uC/1
// https://repl.it/B5tU/2
// https://hexlet-ru.slack.com/files/kirill.mokevnin/F0FTR91HR/solution_php.php
// https://gist.github.com/ikotlyar/0b4bf930bc1be2117802
// https://gist.github.com/LionsHead/3a93e6358b15286dd2fb
// алгоритм
// 1) генерируем последовательность натуральных чисел до ста,
// 2) оставляем только нечетные
// 3) складываем их попарно
// 4) оставляем только те у которых в бинарном представлении количество единиц и нулей одинаковое
// 5) возвращаем общее количество единиц