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

16. в базе данных хранятся записи, содержащие информацию о датах. каждая запись содержит три поля: год (число от 1 до 2100), номер месяца (число от 1 до 12) и номер дня в месяце (число от 1 до 31). каждое поле записывается отдельно от других полей с минимально возможного числа бит. определите минимальное количество бит, необходимых для кодирования одной записи.

👇
Ответ:
EvgenyMalkin71
EvgenyMalkin71
06.05.2020
40 бит
тк в дате вида 01.01.2000 используется 10 символов весом по 1 биту
то K=10 N=10 i=4
I=10*4=40
4,5(7 оценок)
Открыть все ответы
Ответ:
// PascalABC.NET 3.1, сборка 1172 от 19.02.2016
begin
  var m:=ReadInteger('m=').ToString.ToSortedSet;
  var n:=ReadInteger('n=').ToString.ToSortedSet;
  if m.Intersect(n).Count>0 then Writeln('Есть одинаковые цифры')
  else Writeln('Нет одинаковых цифр')
end.

Тестовые решения:
m= 12345
n= 76840
Есть одинаковые цифры

m= 123456
n= 789087
Нет одинаковых цифр

А вот примерно так почему-то заставляют писать эту же задачу в школах:

// PascalABC.NET 3.1, сборка 1172 от 19.02.2016
var
  i,m,n:integer;
  found:boolean;
  sm,sn:string;
begin
  Writeln('Введите через пробел два натуральных числа: ');
  Read(m,n);
  Str(m,sm);
  Str(n,sn);
  found:=False;
  for i:=1 to Length(sm) do
    if Pos(sm[i],sn)>0 then begin
      found:=True;
      break
      end;
  if found then Writeln('Есть одинаковые цифры')
  else Writeln('Нет одинаковых цифр')
end.

Тестовое решение:
Введите через пробел два натуральных числа:
5354353 111211
Нет одинаковых цифр
4,4(75 оценок)
Ответ:
Юлик334
Юлик334
06.05.2020
Var n, amount, max_digit, copy_of_n: integer;
begin
     read(n);
     copy_of_n := n;
     amount := 0;
     max_digit := copy_of_n mod 10;
     while copy_of_n <> 0 do
     begin                                   {Находим наибольшую цифру в числе}
          if max_digit < copy_of_n mod 10
          then
              max_digit := copy_of_n mod 10;
          copy_of_n := copy_of_n div 10;
     end;
     copy_of_n := n;
     while copy_of_n <> 0 do        {Считаем количество таких цифр}
     begin
          if copy_of_n mod 10 = max_digit
          then
              amount := amount + 1;
          copy_of_n := copy_of_n div 10;
     end;
     writeln(amount);
end.
4,6(14 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ