Niknik00i1
02.12.2021 20:02

На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом. Строится двоичная запись числа N.
К этой записи дописываются справа ещё два разряда по следующему правилу: если N делится нацело на 4, в конец числа (справа) дописывается сначала ноль, а затем ещё один ноль; если N при делении на 4 даёт в остатке 1, то в конец числа (справа) дописывается сначала ноль, а затем единица; если N при делении на 4 даёт в остатке 2, то в конец числа (справа) дописывается сначала один, а затем ноль; если N при делении на 4 даёт в остатке 3, в конец числа (справа) дописывается сначала один, а затем ещё одна единица.
Например, двоичная запись 1001 числа 9 будет преобразована в 100101, а двоичная запись 1100 числа 12 будет преобразована в 110000.
Полученная таким образом запись (в ней на два разряда больше, чем в записи исходного числа N) является двоичной записью числа R − результата работы данного алгоритма.

Укажите максимальное число R, меньшее 111, которое может являться результатом работы данного алгоритма. В ответе это число запишите в десятичной системе счисления.

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
287888
14.04.2020 13:27
В C++
#include <iostream>
#include <iomanip>
#include <ctime>
int main()
{
    using namespace std;

    const int N = 5;
    const int M = 6;

    int A[N][M];

    //Как-нибудь заполняем массив
    srand(time(0));
    for (int i = 0; i < N; ++i)
        for (int j = 0; j < M; ++j)
            A[i][j] = rand() % (N * M) + 1;
    for (int i = 0; i < N; ++i)
    {
        for (int j = 0; j < M; ++j)
            cout << setw(4) << A[i][j];
        cout << endl;
    }

   
    //Подсчитываем сумму всех элементов массива
    int sum = 0;

    for (int i = 0; i < N; ++i)
        for (int j = 0; j < M; ++j)
            sum += A[i][j];

    //Вычитаем из полученной суммы повторяющиеся элементы
    for (int i = 0; i < N; ++i)
        for (int j = 0; j < M; ++j)
        {
            bool flag = false;
            for (int i1 = 0; i1 < N; ++i1)
            {
                for (int j1 = 0; j1 < M; ++j1)
                    if (!(i == i1 && j == j1))
                        if (A[i][j] == A[i1][j1])
                        {
                            sum -= A[i][j];
                            flag = true;
                            break;
                        }
                if (flag)
                    break;
            }
        }

    cout << "Sum of different: " << sum << endl;

    return 0;
}
0,0(0 оценок)
Ответ:
agnesa9890
22.04.2023 19:36
В C++
#include <iostream>
#include <iomanip>
#include <ctime>
int main()
{
    using namespace std;

    const int N = 5;
    const int M = 5;

    //Создаём массив и как-нибудь заполняем
    int A[N][M];
    srand(time(0));
    for (int i = 0; i < N; ++i)
        for (int j = 0; j < M; ++j)
            A[i][j] = rand() % (N * M) + 1;
   
    //Выводим его на экран
    for (int i = 0; i < N; ++i)
    {
        for (int j = 0; j < M; ++j)
            cout << setw(4) << A[i][j];
        cout << endl;
    }

    //Меняем местами 2ю и 3ю строки
    int temp = 0;
    for (int j = 0; j < M; ++j)
    {
        temp = A[1][j];
        A[1][j] = A[2][j];
        A[2][j] = temp;
    }

    //Выводим полученный массив на экран
    cout << "\n\n";
    for (int i = 0; i < N; ++i)
    {
        for (int j = 0; j < M; ++j)
            cout << setw(4) << A[i][j];
        cout << endl;
    }

    return 0;
}
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота