М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
dashylia229
dashylia229
04.11.2021 00:25 •  Информатика

На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом. 1) Строится двоичная запись числа N. 2) К этой записи дописываются справа ещё два разряда по следующему правилу: a) складываются все цифры двоичной записи, и остаток от деления суммы на 2 дописывается в конец числа (справа). Например, запись 11100 преобразуется в запись 111001; b) над этой записью производятся те же действия – справа дописывается остаток от деления суммы цифр на 2. Полученная таким образом запись (в ней на два разряда больше, чем в записи исходного числа N) является двоичной записью искомого числа R. Укажите такое наименьшее число N, для которого результат работы алгоритма больше 45. В ответе это число запишите в десятичной системе счисления.

👇
Ответ:
zhadanovayuliy
zhadanovayuliy
04.11.2021

11

Объяснение:

Если изначально сумма разрядов была чётная, то в конец запишется 00, что эквивалентно N*4.

Если же сумма была нечётная, то запишется 10, что эквивалентно N*4 + 2.

В обоих случаях число получается чётным.

Посмотрим на чётные числа, превосходящие 45.

46_{10}=00101110_2 — на конце 10, а сумма остальных разрядов нечётна. Число подходит под второй случай, значит, число, из которого оно было получено, равно \frac{46-2}{4}=11

============

Не забывайте нажать " ", поставить оценку и, если ответ удовлетворил, то выберите его как "Лучший"

Бодрого настроения и добра!

Успехов в учебе

4,5(55 оценок)
Открыть все ответы
Ответ:
1) 8
2) 7 выведет 1
3)
11 строка, поменять на k := k + 1;
14 строка заменить на if n = 1 then

Рабочий код

var
    n, k: integer;

begin
    read(n);
    k := 0;
    while n mod 7 = 0 do
    begin
        k := k + 1;
        n := n div 7;
    end;
    if n = 1 then
        writeln(k)
    else
        writeln('He существует')
end.

Правильное решение данной задачи
const
    divider = 7;

var
    n: integer;
    k: real;

begin
    read(n);
    k := ln(n) / ln(divider);
    if round(k) = k then
        writeln(round(k))
    else
        writeln('He существует');
end.
4,5(64 оценок)
Ответ:
dzyadukh1
dzyadukh1
04.11.2021

#include <iostream>

#include <algorithm>

#include <cstdlib>

#include <ctime>

int main()

{

   srand(time(0));

   int n,k;

   std::cin>>n>>k;

   int arr[n];

   for (int i=0; i<n; i++)

   {

       arr[i] = i+1;

   }

   int SIZE = sizeof(arr) / sizeof(*arr);

   

   std::random_shuffle(arr, arr + SIZE );

   

   for(int i=0; i<k; i++)

       for(int j=0; j<n-1; j++)

           if(arr[j]>arr[j+1])

               std::swap(arr[j], arr[j+1]);

           

   

   for (int i = 0; i < SIZE; ++i)

       std::cout << arr[i]<<" ";

}


ОТ Ровно К обменов Даны два числа n и k. Вывести перестановку из n чисел (n чисел от 1 до n без пов
4,6(48 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ