На самом деле это не сложно. Информатика в школе - это вообще несложно. Поверь. Вот смотри, в условии - числа не больше 18 и не меньше 18, то есть 18 мы можем использовать и там и там. Тогда 18 будет в клетке (3;3), а остальные числа располагаем по условие, те, что меньше 18 по горизонтали, а те что больше 18 по вертикали.
<em>// PascalABC.NET 3.2, сборка 1345 от 24.11.2016</em>
<em>// Внимание! Если программа не работает, обновите её версию!</em>
function Len(ax,ay,bx,by:real):=sqrt(sqr(bx-ax)+sqr(by-ay));
var
x,y,L:array[1..4] of real;
begin
Writeln('Введите координаты четырех точек (парами х,y)');
for var i:=1 to 4 do Read(x[i],y[i]);
for var i:=1 to 3 do
L[i]:=Len(x[i],y[i],x[i+1],y[i+1]);
L[4]:=Len(x[4],y[4],x[1],y[1]);
var s:=0.0;
for var i:=1 to 4 do s+=L[i];
Writeln('P=',s)
end.
<u>Пример</u>
Введите координаты четырех точек (парами х,y)
-5 -4.7 -3.2 6.7 5.1 8 7.4 -6.13
P=46.7405707422041
Во вложениях приведено решение этой же задачи в онлайн-калькуляторе. Ответ совпадает.
Программа на Кумире прилагается.
//Dev-C++ 4.9.9.2
//Пароль, как можно догадаться, UVAO-chan
#include <iostream>
#include <string>
using namespace std;
int main(){
string s,password;
cin>>password;
if(password!="UVAO-chan")return 0;
cin>>s;
cout<<s.length();
cin.get();
cin.get();
return 0;
}
Пример ввода:
UVAO-chan
124
Пример вывода:
3
// НОД(a,b)*НОК(a,b)=a*b
procedure nod(x,y: integer; var n: integer);
begin
repeat
if x>y then x:=x mod y
else y:=y mod x;
until (x=0)or(y=0);
n:=x+y;
end;
var a,b,c,d,e,n: integer;
begin
readln(a,b,c,d);
nod(a,b,n);
e:=a*b div n;
nod(c,e,n);
e:=c*e div n;
nod(d,e,n);
Writeln('НОК = ',d*e div n);
end.
Пример:
36 54 18 15
<span>НОК = 540</span>