В естественном числе N (0 amp;lt; N amp;lt; 109) нужно подсчитать

В естественном числе N (0 lt; N lt; 109) необходимо подсчитать количество цифр десятичной записи, чётность которых совпадает с чётностью заключительней числа числа N. К примеру, для N = 123 обязан получиться ответ 2 (последняя цифра числа нечётная, а всего в записи числа две нечётные числа: 1 и 3). Для решения этой задачки воспитанник написал программку, но, к раскаянью, его программа неправильная. Ниже эта программка приведена на языке паскаль:
var N, k, d: integer;
begin
read(N);
k := 0;
d := N mod 2;
while N gt; 1 do begin
if N mod 10 = d
then k := k + 1;
N := N div 10
end;
writeln(k)
end.
Последовательно выполните последующее. 1. Напишите, что выведет эта программка при вводе N = 1961. 2. Назовите малое N, большее 100, при котором программа выведет верный ответ. 3. Найдите в программе все оплошности (знаменито, что их не более 2-ух). Для каждой ошибки выпишите строчку, в которой она допущена, и приведите эту же строку в исправленном виде. Достаточно указать ошибки и метод их исправления для 1-го языка программирования. Обратите внимание: Для вас необходимо поправить приведённую программу, а не написать свою. Вы сможете только сменять ложные строки, но не сможете устранять строчки либо добавлять новые.

Задать свой вопрос
1 ответ
1. В переменную d записывается остаток от деления числа 2, который совпадает с остатком от дробления заключительной цифры на 2; k инициализируется нулем. Затем, пока N gt; 1, заключительная цифра числа сравнивается с d, и если она совпадает с d, k увеличивается на 1. После сравнения заключительная цифра отбрасывается. Результат подсчета выводится на экран.
Итак программка вычисляет количество цифр, совпадающих с остатком от разделенья заключительней числа на 2 без учета первой числа, если она 1.
N = 1961: будет выведено 1 (1-ая единица не в счет, кроме неё в числе остается только одна единица)

2. N от 101 до 109 не подходят: если число четное, не будет учтена заключительная цифра, если нечетное то 1-ая.
N = 110 подходит: будет выведено 1.

3. Оплошности светлы из описания в пт 1: сравниваются не остаток от дробления и d, а числа и d; если 1-ая цифра 1, она не учитывается.
Исправления:
while N gt; 1 ... надобно поменять на while N gt; 0 ...
if N mod 10 = d ... надо поменять на if N mod 2 = d ...
 
Заликман Леонид
Громадное спасибо выручили из бяды!
, оставишь ответ?
Имя:*
E-Mail:


Добро пожаловать!

Для того чтобы стать полноценным пользователем нашего портала, вам необходимо пройти регистрацию.
Зарегистрироваться
Создайте собственную учетную запить!

Пройти регистрацию
Авторизоваться
Уже зарегистрированны? А ну-ка живо авторизуйтесь!

Войти на сайт