• Вася написал код для решения некоторой задачи. Приводим его на трех языках программирования:

    Python:

    n = int(input())
    ans = 0
    i = 0
    while n > 0:
    if i % 2 == 1 and n % 10 % 2 == 0:
    ans += 1
    n //= 10
    i += 1
    print(ans)

    Pascal:

    var
    n, i, ans: longint;

    begin
    readln(n);
    ans := 0;
    i := 0;
    while n > 0 do begin
    if (i mod 2 = 1) and (n mod 10 mod 2 = 0) 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 = 0;
    cin >> n;
    while (n > 0){
    if (i % 2 == 1 and n % 10 % 2 == 0)
    ans++;
    n /= 10;
    i++;
    }
    cout << ans;
    return 0;
    }

    А теперь ему стало интересно: при каком наименьшем n его программа выведет в качестве ответа число 3?

Ответы 3

  • Спасибо! Вы мне очень помогли!)
  • Ну ок)
    • Автор:

      coraparks
    • 6 лет назад
    • 0
  • 200000, насколько я понял.Если вы дочитаете это - респект.%) При первом запуске условие не выполниться, поэтому переменная ans останется прежней( в таком случае нам безразлично значение единиц числа n, и мы ставим наименьшее - 0), в этом же цикле от числа n убираются единицы и к переменная i увеличивается на 1.Цикл начинается по новой, теперь условие выполняется( i делится на 2 с остатком 1), но также на два должны без остатка делится и десятки числа n(опять берем наименьшее число 0) переменная ans увеличивается на 1.В следующем цикле условие опять не выполняется, i увеличивается на 1, от n убираются сотни(сотни числа n равны 0)В четвертом цикле asn и i увеличиваются на 1, тысячи числа n опять же равны 0.В 5-ом цикле условие не выполняется, i увеличивается на 1, десятки тысяч числа n равны 0.И наконец в шестом цикле переменная asn увеличится на 1, но при том условии,что сотни тысяч числа n делятся на 2 без остатка - ноль здесь уже не подходит, поскольку число не может начинаться с нуля. Берем 2.
  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years