G(9) = 9! = 362880
Объяснение:
Из условия задачи видно, что функция G рекурсивная, с условием завершения рекурсии при G(1) = 1
Тогда найдём значение при n = 9
Для удобства я буду обозначать -> как вхождение в рекурсию:
G(9) = G(8) * 9 -> G(7) *8 -> G(6) * 7 -> G(5) * 6 -> G(4) * 5 -> G(3) * 4 -> G(2) * 3 -> G(1) * 2 -> G(1) - это последовательность вызовов данной рекурсии, вглядевшись в которую можно увидеть факториал, откуда
G(9) = 9! = 362880
Теперь же пройдёмся обратно по рекурсии, где -> обозначает выход из рекурсии
G(1) = 1 -> G(2) = 1 * 2 = 2 -> G(3) = 2 * 3 = 6 -> G(4) = 6 * 4 = 24 -> G(5) = 24 * 5 = 120 -> G(6) = 120 * 6 = 720 -> G(7) = 720 * 7 = 5040-> G(8) = 5040 * 8 = 40320 -> G(9) = 40320 * 9 = 362880
type
Point=record
x,y:real
end;
function GetPoint(c:char):Point;
begin
Writeln('Введите координаты точки ',c,':');
Read(Result.x,Result.y)
end;
function Line(A,B:Point):real;
begin
Result:=sqrt(sqr(B.x-A.x)+sqr(B.y-A.y))
end;
function SqTriangle(pA,pB,pC:Point):real;
begin
var a:=Line(pB,pC);
var b:=Line(pA,pC);
var c:=Line(pA,pB);
if (a+b>c) and (a+c>b) and (b+c>a) then begin
var p:=(a+b+c)/2;
Result:=sqrt(p*(p-a)*(p-b)*(p-c))
end
else Result:=0
end;
begin
var A:=GetPoint('A');
var B:=GetPoint('B');
var C:=GetPoint('C');
Writeln('Площадь треугольника равна ',SqTriangle(A,B,C))
end.
Тестовое решение:
Введите координаты точки A:
-5 3.18
Введите координаты точки B:
1.45 6.2
Введите координаты точки C:
6 -5.93
Площадь треугольника равна 45.98975