Posadskii-Sergeevna
?>

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

Информатика

Ответы

mishagoride885

11

Объяснение:

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

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

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

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

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

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

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

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

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

АркадьевичБундин789
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.
ПаршинАндрей1928

#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 без пов

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

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

Популярные вопросы в разделе

maslprod
sleek73
tatasi
Троцкая-Ивановна
juliavovo
kzhgutova
Maly01984489
Владислав-Александр32
ElenaEgorova1988576
ev27076878
hellomaxim
serkan777
Alekseevna1811
Исаченко Тераски1181
Николаевна1564