Итак, приступим!
Задача №1: Написать функцию возвращающую количество разрядов числа.
А вот и код этой функции:
function num_digits($number)
{
$rest = floor($number / 10);
$i = 1;
while ($rest >= 1) {
$rest = floor($rest / 10);
$i++;
}
return $i;
}
Как видите, вычисление количества разрядов на PHP – довольно простое дело.
Задача №2: Написать функцию, которая возвращает массив цифр из которых состоит число.
Реализация функции:
function citizen($number)
{
$citizen_array = array();
$stepen = num_digits($number) - 1;
$divider = pow(10, $stepen);
while($divider >= 1){
$cit = floor($number / $divider);
$citizen_array[] = $cit;
$number = $number % $divider;
$divider /= 10;
}
return($citizen_array);
}
Задача №3: Написать на PHP функцию, которая вычисляет сумму цифр из которых состоит число.
Код функции:
function sum_of_digits($number)
{
$citnumber = array();
$citnumber = citizen($number);
$i = 0;
while($i <= count( $citnumber)){
$summ = $summ + $citnumber[$i];
$i++;
}
return($summ);
}
Задача №4: Написать функцию, которая возвращает числа, цифры, составляющие которое, идут в обратном порядке, нежели в заданном числе. Т.е. нам необходимо, при вводе 123, выдать 321, при вводе 478, выдать 874 и т.д.
Программный код:
function reverse_digits($number)
{
$citnumber = citizen($number);
$reverse_citnumber = array_reverse($citnumber);
$reverse_number = implode($reverse_citnumber, "");
return($reverse_number);
}
Задача №5: Написать функцию, которая определяет, является ли число палиндромом(палиндром – это число которое читается одинаково, как слева на право, так и наоборот, к примеру, 12321 - палиндром).
Код функции:
function is_palindrom($number)
{
return(reverse_digits($number) == $number);
}
Как видите, во многих функциях используются предыдущие функции, что позволяет экономить время на разработку.
Спонсор поста:
Хороший бесплатный хостинг Дама Пик.
>Задача №2: Написать функцию, которая возвращает массив цифр из которых состоит число.
ОтветитьУдалитьК чему ты писал такой большой кусок кода? PHP обладает большим числом функций которые половину работы уже делают за тебя. И велосипедов своих не надо изобретать. Достаточно сделать так:
function citizen($number)
{
$number = (string)$number;
return str_split($number);
}
Что скажешь?
>Задача №3: Написать на PHP функцию, которая вычисляет сумму цифр из которых состоит число.
А как тебе такое?
function sum_of_digits($number)
{
$number = (string)$number;
return array_sum($number);
}
Я думаю что для таких задач функции то писать и не обязательно.
И ещё один момент по поводу стандартов кодирования:
"Возвращаемое значение не должно обрамляться в круглые скобки, иначе это ухудшает читабельность, а также может поломать код, если метод позже станет возвращать результат по ссылке."
Выдержка из стандарта кодирования Zend
http://framework.zend.com/manual/ru/coding-standard.html
Удачи ;)
Этот комментарий был удален автором.
ОтветитьУдалитьИзвиняюсь за ошибку в 3 задаче. Вот корректно:
ОтветитьУдалитьfunction citizen{
$number = (string)$number;
$number_split = str_split($number);
return array_sum($number_split);
}
Кошмар! Это что?!
ОтветитьУдалить$i = 0;
while($i <= count( $citnumber)){
Вышли за границы массива.
Действительно, изобретение велосипеда, а ведь незнающие люди читают и будут у себя такое использовать.
Эм. Лучше попробуй раскрыть тему разнообразных MVC и прочего :) Функции позволяет реализовать практически любой язык...)
ОтветитьУдалить