Задача 10. Васин код
Вася написал код для решения некоторой задачи. Приводим его на трех языках программирования:
Python:
n = int(input())
ans = 0
i = 1
while n > 0:
if i % 2 == 1 and n % 10 % 2 == 1:
ans += 1
n //= 10
i += 1
print(ans)
Pascal:
var
n, i, ans: longint;
begin
readln(n);
ans := 0;
i := 1;
while n > 0 do begin
if (i mod 2 = 1) and (n mod 10 mod 2 = 1) then
ans := ans + 1;
n := n div 10;
i := i + 1;
end;
writeln(ans);
end.
C++:
#include
using namespace std;
int main()
{
int n, ans = 0, i = 1;
cin >> n;
while (n > 0){
if (i % 2 == 1 and n % 10 % 2 == 1)
ans++;
n /= 10;
i++;
}
cout << ans;
return 0;
}
А теперь ему стало интересно: при каком наименьшем n его программа выведет в качестве ответа число 3?

15 Ноя 2019 в 19:54
176 +1
0
Ответы
1

Для того чтобы программа вывела в качестве ответа число 3, необходимо, чтобы в числе n было ровно 3 нечетных цифры на нечетных позициях.

Давайте пройдемся по алгоритму:

Переменная i отвечает за позицию текущей цифры.Переменная ans отвечает за количество найденных нечетных цифр на нечетных позициях.Нам нужно, чтобы ans было равно 3. Значит, нам нужно найти 3 нечетные цифры на нечетных позициях.Пройдемся по разрядам числа n с конца (с младших разрядов) и будем считать количество найденных нечетных цифр на нечетных позициях.Когда ans станет равно 3, мы найдем число n, при котором программа выведет 3 в качестве ответа.

Давайте протестируем алгоритм с помощью кода на Python:

n = 1
while True:
ans = 0
i = 1
temp = n
while temp > 0:
if i % 2 == 1 and temp % 10 % 2 == 1:
ans += 1
temp //= 10
i += 1
if ans == 3:
print(n)
break
n += 1

Мы запустим этот код и найдем наименьшее число n, при котором программа выведет 3 в качестве ответа.

19 Апр в 01:51
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 90 211 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир