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

Задача. Автоматичний пристрій здійснив перекодування текстового повідомлення довжиною 48 символів, записаного в 7-бітному кодi ASCII, у 16-бітне кодування nicode. Визначте, на скільки байтів при цьому збільшилась довжина двійкового коду повідомлення.

👇
Открыть все ответы
Ответ:
Aidan23
Aidan23
23.01.2020

ответ: 500

Объяснение:

1)Число точно больше 100, чтобы L было 3.

2)Какие бы числа мы не ставили на позициях единиц и десятков, результата они никакого не дадут, тк отрезаются командой div

3)Ближайшее необходимое число: 500

Дописал программу, чтобы проверить. Она выводит количество подходящих комбинаций при вводе всех чисел от 1 до 500.

var

 x, L, M,count,i: integer;  

begin

 count:=0;

 for i:=1 to 500 do

 begin

 x:=i; L := 0;M := 0;

 while x > 0 do  

 begin

   L := L + 1; x := x div 10;

   if L mod 2 = 0 then

     M := M + (x mod 10);

 end;

//write(L,'  ');write(M);

 if (L=3) and (M=5) then inc(count);

 end;

 writeln(count);

end.

4,5(41 оценок)
Ответ:
loloshka21
loloshka21
23.01.2020

Тесты проваливаются на степенях двойки (A=2^n) при n >= 5

Напишу два решения. Первое просто показывает алгоритм, но имеет ограничение на N (результат не может быть больше 15 из-за переполнения unsigned long long)

Второе по своей сути такое же, но не имеет ограничений. Однако для этого понадобится особый тип данных big_integer. Вторую реализацию прикрепил к ответу в виде текстового файла из-за ограничения на количество символов в ответе.

// первое решение

#include <iostream>

typedef unsigned long long ulong;

ulong pow(int num, int pow);

int main()

{

   int a = 0;

   std::cin >> a;

   int n = 0;

   while (n++ <= a)

   {

       if (pow(n, n) % a == 0)

       {

           std::cout << n << std::endl;

           break;

       }

   }

   return 0;

}

ulong pow(int num, int pow)

{

   ulong res = num;

   for (int i = 1; i < pow; ++i)

       res *= num;

   return res;

}

4,4(56 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика

MOGZ ответил

Полный доступ к MOGZ
Живи умнее Безлимитный доступ к MOGZ Оформи подписку
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ