В
Все
Б
Биология
Б
Беларуская мова
У
Українська мова
А
Алгебра
Р
Русский язык
О
ОБЖ
И
История
Ф
Физика
Қ
Қазақ тiлi
О
Окружающий мир
Э
Экономика
Н
Немецкий язык
Х
Химия
П
Право
П
Психология
Д
Другие предметы
Л
Литература
Г
География
Ф
Французский язык
М
Математика
М
Музыка
А
Английский язык
М
МХК
У
Українська література
И
Информатика
О
Обществознание
Г
Геометрия
hhgfg
hhgfg
13.09.2020 23:25 •  Информатика

Гриша любит сериалы. Особенно ему нравятся те сериалы, в которых в любой момент можно узнать, на какой по счету серии он сейчас находится и сколько
в целом серий имеется в этом сериале. Обычно где-нибудь в углу экрана находится надпись, например
«10/100», которая означает, что сейчас Гриша находится на 10 серии, а всего в сериале 100 серий.
На днях Гриша начал смотреть новый сериал, но оказалось, что разработчик для вывода на экран надписи с номерами серий использовал шрифт, которого нет на Гришином компьютере. Шрифт автоматически заменился на какой-то другой, в котором не поддерживается символ
«/».
Теперь два числа, которые должны были быть разделены, слились в одно, и Гришу это невероятно
расстраивает. Он подумал о том, что можно попробовать самому угадывать место, в котором должен
стоять символ «/», но потом понял, что в некоторых случаях подходящих вариантов может быть
несколько. Например, если на экране написано «1234», это может означать как то, что он находится
на 1 уровне из 234, так и то, что он находится на 12 уровне из 34.
Ему стало интересно, а сколько всего существует подставить символ «/» в надпись
на экране так, чтобы надпись была корректной, то есть чтобы слева и справа от символа были
корректные числа без лидирующих нулей и при этом левое число не превосходило правое Грише ответить на этот вопрос.​

Показать ответ
Ответ:
ArtemDigue
ArtemDigue
04.04.2021 02:12

program xxx;
var i, j, k, n, p, s : integer;
    a : array [1..20] of integer;
begin
  write ('введите количество инверсий -');
  readln(k);
  write ('введите количество ламп -');
  readln(n);
  for i:=1 to n do
    a[i]:=0;
  for i:=1 to k do
    begin
      write ('введите инверсию P-');
      readln(p);
      j:=p;
      while j<=n do
        begin
          if a[j]=0 then a[j]:=1 else a[j]:=0;
          j:=j+p
        end
    end;
  s:=0;
  for i:=1 to n do
    if a[i]=1 then s:=s+1;
  write ('Ламп горит -', s);
  readln
end.

0,0(0 оценок)
Ответ:
elkenakate1221
elkenakate1221
07.05.2020 18:51

1) Чтобы перевести из 2-ой системы в 10-ную нужно каждую цифру умножить на основание системы счисления в степени в какой стоит цифра:

111101(2) = 1 * 2^5 + 1 * 2^4 + 1 * 2^3 + 1 * 2 ^ 2 + 0 * 2 ^ 1 + 1 * 2^0 =

= 32 + 16 + 8 + 4 + 0 + 1 = 61 (10)

2) Чтобы перевести число из 10-ой системы в 2-ную нудно делить исходной число на 2 до тех пор пока исходной число не станет меньше 2, остатки от деления записанные в обратном порядке будут результатом

65 : 2 = 32(ост. 1)

32 : 2 = 16(ост. 0)

16 : 2 = 8(ост. 0)

8 : 2 = 4(ост. 0)

4 : 2 = 2 (ост. 0)

2 : 2 = 1 (ост. 0)

65(10) = 1000001(2)

 

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