не "выводить на экран", а "вводить в использование".
На экран выводить числа, конечно, надо - это написано в задании. Имелось ввиду, что не обязательно присваивать значение переменной, чтобы вывести её на экран, можно написать короче:
<?php
function reverse ($n){
while ($n>=1){
echo $n % 10 . '<br>';
$n /= 10;
}
}
$a = rand(1, 99999);
echo 'Дано число ' . $a . '<br>';
reverse($a);
Не понял вот что:
0 и 1 тоже числа, и хотят, чтобы их посчитали)
Рассуждаю в контексте этой задачи... если нам дано некое число, мы его в цикле регулярно делим на 10 и рано или поздно у нас останется последняя полная цифра к примеру цифра 5, которую мы в очередной раз разделим на 10, получим 0,5, заберем остаток от деления, т.е. ту же цифру 5 и останется 0... поэтому я не вижу смысла загонять условие для проверки чисел от 0 и 1... поправьте меня если я не прав или рассуждаю не верно
Дело в том, что в программировании крайне важно охватывать своим вниманием все возможные значения, которые могут прийти в качестве аргументов в функцию. Потому что попадание неожидаемого значения вызовет ошибку, что в реальной программе означает "падение" скрипта, а значит, сбой программы. Это ошибка в браузере, сбой в подсчёте чьих-то финансов или даже чьего-то пульса. Короче, абсолютно неприемлимо.
0 и 1 в данном случае прийти могут, т.к. они тоже числа от 1 до 5 знаков длиной.
1 вы уже "посчитали", теперь осталось обработать входящий 0. Необходимо, чтобы при любом допустимом входящем значении, программа отрабатывала корректно, т.е. выводила цифры числа на экран в нашем случае.
Решение рабочее. Но не очевидное. Это значит, что программист, который будет поддерживать ваш код, задумается: "А зачем это $n приводится к int? Тут какая-то магия.." И начнёт отлаживать...
Если это возможно, лучше использовать более очевидные решения, глядя на которые легко понять, что происходит, без запуска кода. Например:
melisa
Mon, 10/15/2018 - 16:56
Permalink
переменную $b вводить не обязательно
- это условие. У Вас только числа длиной 5 цифр
iov84
Thu, 10/18/2018 - 20:14
Permalink
исправления и комментарии
1. Да, я понимаю что переменную b выводить не обязательно, но для наглядности и проверки корректности работы кода я ее выводил
2. Да, согласен... мне надо внимательнее читать условия задачи... исправился, параллельно обернув все в функцию
melisa
Fri, 10/19/2018 - 16:14
Permalink
не "выводить на экран", а "вводить в использование"
не "выводить на экран", а "вводить в использование".
На экран выводить числа, конечно, надо - это написано в задании. Имелось ввиду, что не обязательно присваивать значение переменной, чтобы вывести её на экран, можно написать короче:
Но на результат это никак не влияет, это не ошибка.
Кстати, запись
тоже можно сократить.
А вот насчёт ошибок:
0 и 1 тоже числа, и хотят, чтобы их посчитали)
vedro-compota
Fri, 10/19/2018 - 18:20
Permalink
0 и 1 тоже числа, и хотят,
норм)
_____________
матфак вгу и остальная классика =)
iov84
Sun, 10/21/2018 - 20:00
Permalink
немного поправил, но не понял...
Поправил код, вот он:
Не понял вот что:
Рассуждаю в контексте этой задачи... если нам дано некое число, мы его в цикле регулярно делим на 10 и рано или поздно у нас останется последняя полная цифра к примеру цифра 5, которую мы в очередной раз разделим на 10, получим 0,5, заберем остаток от деления, т.е. ту же цифру 5 и останется 0... поэтому я не вижу смысла загонять условие для проверки чисел от 0 и 1... поправьте меня если я не прав или рассуждаю не верно
melisa
Mon, 10/22/2018 - 19:13
Permalink
0 и 1 тоже числа, и хотят...
Дело в том, что в программировании крайне важно охватывать своим вниманием все возможные значения, которые могут прийти в качестве аргументов в функцию. Потому что попадание неожидаемого значения вызовет ошибку, что в реальной программе означает "падение" скрипта, а значит, сбой программы. Это ошибка в браузере, сбой в подсчёте чьих-то финансов или даже чьего-то пульса. Короче, абсолютно неприемлимо.
0 и 1 в данном случае прийти могут, т.к. они тоже числа от 1 до 5 знаков длиной.
1 вы уже "посчитали", теперь осталось обработать входящий 0. Необходимо, чтобы при любом допустимом входящем значении, программа отрабатывала корректно, т.е. выводила цифры числа на экран в нашем случае.
iov84
Sun, 11/11/2018 - 18:24
Permalink
попробовал исправиться!
Вот код:
... конечно история с подсчетом чьего-то пульса заставила задуматься с одной стороны она испугала, а с другой стороны заставила задуматься!
Попробовал исправиться!
melisa
Mon, 11/19/2018 - 12:55
Permalink
решение рабочее
Решение рабочее. Но не очевидное. Это значит, что программист, который будет поддерживать ваш код, задумается: "А зачем это $n приводится к int? Тут какая-то магия.." И начнёт отлаживать...
Если это возможно, лучше использовать более очевидные решения, глядя на которые легко понять, что происходит, без запуска кода. Например:
iov84
Sat, 11/24/2018 - 21:05
Permalink
почему-то у меня не получилось
Вот код:
Chrome пишет: 502 Bad Gateway
iov84
Sat, 11/24/2018 - 21:06
Permalink
нашел ошибку, все получилось
Рабочий код:
melisa
Mon, 11/19/2018 - 12:55
Permalink
принято
принято