Задать вопрос
  • Не могу решить задание из ЕГЭ. Опечатка?

    @PerfectRayStudio
    Мне кажется тут не нужен ввод с консоли вообще. Иначе,
    Условие
    Определите количество принадлежащих отрезку [876 544; 1 234 567 899] чисел, которые могут получиться в результате работы этого алгоритма.
    не имеет здесь никакого смысла.
    Я понимаю это задание, как перебор неких чисел N в каком-либо диапазоне (например до 2^24). Выполнение алгоритма и счёт кол-ва чисел N, при которых они будут принадлежать отрезку R.

    Не python, но скину свой код на C#:
    HashSet<int> RValues = new HashSet<int>();
    
    int maxN = 1 << 24;
    
    for (int N = 1; N <= maxN; N++)
    {
        string binary = Convert.ToString(N, 2);
        int currentN = N;
    
        for (int i = 0; i < 3; i++)
        {
            int chet = 0;
            int nechet = 0;
            foreach (char c in currentN.ToString())
            {
                int dec = c - '0';
                if (dec % 2 == 0)
                    chet++;
                else
                    nechet++;
            }
            if (chet > nechet)
                binary += '1';
            else if (nechet > chet)
                binary += '0';
            else
                binary += (currentN % 2 == 0) ? '0' : '1';
    
            currentN = Convert.ToInt32(binary, 2);
        }
        int R = currentN;
        if (R >= 876_544 && R <= 1_234_567_899)
            RValues.Add(R);
    }
    Console.WriteLine($"Количество чисел R: {RValues.Count}");
    Ответ написан
    Комментировать