Гриша любит сериалы. Особенно ему нравятся те сериалы, в которых в любой момент можно узнать, на какой по счету серии он сейчас находится и сколько
в целом серий имеется в этом сериале. Обычно где-нибудь в углу экрана находится надпись, например
«10/100», которая означает, что сейчас Гриша находится на 10 серии, а всего в сериале 100 серий.
На днях Гриша начал смотреть новый сериал, но оказалось, что разработчик для вывода на экран надписи с номерами серий использовал шрифт, которого нет на Гришином компьютере. Шрифт автоматически заменился на какой-то другой, в котором не поддерживается символ
«/».
Теперь два числа, которые должны были быть разделены, слились в одно, и Гришу это невероятно
расстраивает. Он подумал о том, что можно попробовать самому угадывать место, в котором должен
стоять символ «/», но потом понял, что в некоторых случаях подходящих вариантов может быть
несколько. Например, если на экране написано «1234», это может означать как то, что он находится
на 1 уровне из 234, так и то, что он находится на 12 уровне из 34.
Ему стало интересно, а сколько всего существует подставить символ «/» в надпись
на экране так, чтобы надпись была корректной, то есть чтобы слева и справа от символа были
корректные числа без лидирующих нулей и при этом левое число не превосходило правое Грише ответить на этот вопрос.
225
464
Ответы на вопрос:
Используется формула гаусса (формула "шнурования"). // pascalabc.net 3.3, сборка 1583 от 25.11.2017 // внимание! если программа не работает, обновите версию! - с функцией: function spolygongauss(a: array of real): real; // возвращает вычисленную по формуле гаусса площадь многоугольника, // координаты вершин которого заданы массивами х и у begin var (n,i): =(a.length-4,0); result: =0.0; while i< =n do begin result+=a[i]*a[i+3]-a[i+1]*a[i+2]; i+=2 end; result: =abs(0.5*result) end; begin var x: =readarrreal('введите координаты вершин 5-угольника: ',10); setlength(x,12); x[10]: =x[0]; x[11]: =x[1]; writeln('площадь равна ',spolygongauss(x)) end. пример введите координаты вершин 5-угольника: 0.6 2.1 1.8 3.6 2.2 2.3 3.6 2.4 3.1 0.5 площадь равна 3.915 - с процедурой: procedure spolygongauss(a: array of real; var s: real); // вычисляет по формуле гаусса площадь многоугольника, // координаты вершин которого заданы массивами х и у begin var (n,i): =(a.length-4,0); s: =0.0; while i< =n do begin s+=a[i]*a[i+3]-a[i+1]*a[i+2]; i+=2 end; s: =abs(0.5*s) end; begin var x: =readarrreal('введите координаты вершин 5-угольника: ',10); setlength(x,12); x[10]: =x[0]; x[11]: =x[1]; var s: real; spolygongauss(x,s); writeln('площадь равна ',s) end.
Популярно: Информатика
-
Fatima095200617.08.2020 22:06
-
Нюша139014.01.2023 15:43
-
Snezhok140714.10.2021 04:36
-
Ekaterina7394828.12.2021 09:17
-
bezin200010.05.2020 11:38
-
dmitryveris09.06.2023 12:32
-
koteyka123209.10.2021 00:32
-
alyo7na25.02.2020 00:58
-
samira231401.05.2021 16:48
-
Sanya1936713.11.2020 17:31