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

Задача I. Часики, площадь и … «Стрелки часов - две руки,
которые отнимают у нас время.»

Представьте себе пару одинаковых классических часов с двумя стрелками и круглым циферблатом. Часы показывают разное время. Ваша задача – вычислить площадь части циферблата (кругового сектора), которая начинается от часовой стрелки первых часов и продолжается до часовой стрелки вторых часов.

Входные данные
В первой строке записаны показания первых часов в формате H M S U, где H –часы, M - минуты, S – секунды и U – сотые доли секунды (0 ≤ H < 12, 0 ≤ M, S < 60, 0 ≤ U < 100). Во второй строке в том же формате записаны показания вторых часов. В третьей строке содержится радиус циферблата (вещественное число).

Выходные данные
Запишите вычисленную площадь с тремя дробными цифрами.

Показать ответ
Ответ:
mdotsenko
mdotsenko
31.12.2020 13:19
{0 - умножить на 2; 1 - прибавить 1}

5: 001 {1 - 2 - 4 - 5}
50: 0100010 {1 - 2 - 3 - 6 - 12 - 24 - 25 - 50}
99: 010000101 {1 - 2 - 3 - 6 - 12 - 24 - 48 - 49 - 98 - 99}

В данном случае достаточно просто идти с конца. Скажем, если есть число 99, очевидно, последней командой было "прибавить 1". Далее, 98 - может быть получено умножением на 2, и следует выбирать именно эту команду - программа точно не будет превосходить по размеру вариант, где последней операцией является сложение.
Например,
98 - 49 - 48 короче, чем
98 - 97 - 96 - 48
0,0(0 оценок)
Ответ:
ApollaKop
ApollaKop
08.09.2022 16:51
//Pascal ABC.NET v3.1 сборка 1172

//1

Var
 a,b,c,max,i:integer;
 ca,cb,cc,smax:string;
begin
max:=-1;
 readln(ca);
 readln(cb);
 readln(cc);
 for i:=1 to 3 do
  begin
   if strtoint(ca[i])>max then
    begin
     smax:=ca;
     max:=strtoint(ca[i]);
    end;
   if strtoint(ca[i])>max then
    begin
     smax:=cb;
     max:=strtoint(ca[i]);
    end;
   if strtoint(cc[i])>max then
    begin
     smax:=cc;
     max:=strtoint(ca[i]);
    end;
   end;
 writeln(smax);
end.

Пример ввода:
123
456
908
Пример вывода:
908

//2

Var
 n,n1:integer;
 s:string;
begin
 readln(n);
 n1:=n;
   if (n=11) or (n=12) or (n=13) or (n=14) then s:='лет' else
     begin
       n:=n mod 10;
       case n of
       0:s:='лет';
       1:s:='год';
       2:s:='года';
       3:s:='года';
       4:s:='года';
       5:s:='лет';
       6:s:='лет';
       7:s:='лет';
       8:s:='лет';
       9:s:='лет';
      end;
  end;
writeln('Мне ',n1,' ',s);
end.

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