Написать программу, найти факториал 100!
len := 1; { записать [A]=1 }
A[0] := 1;
for i:=1 to 40 do
A[i] := 0;
for k:=2 to 100 do begin
i := 0;
r := 0;
while (i < len) or (r > 0) do begin
s := A[i]*k + r;
A[i] := s mod d;
r := s div d;
i := i + 1;
end;
len := i;
end;
// Вводятся площади квадратов, окончание ввода по значению 0
// Найти диагональ максимального размера.
// Поскольку диагональ равна квадратному корню из удвоенной площади,
// надо найти максимальную площадь, а затем вычислить диагональ.
var
S,SMax:real;
begin
SMax:=0;
writeln('Вводите площади квадратов, 0 - конец ввода');
repeat
readln(S);
if s>sMax then sMax:=s
until s=0;
writeln('Максимальная длина диагонали равна ',sqrt(2*sMax))
end.
Тестовое решение:
Вводите площади квадратов, 0 - конец ввода
5
10
12
13.6
11
18
0
Максимальная длина диагонали равна 6
INPUT "Kolichestvo partiy. M="; m
INPUT "Porog yavki izbirateley (v %). P="; p
DIM g(k, m + 1)
DIM pr(k, 1)
FOR i = 1 TO k
CLS
PRINT "Okrug "; i
g(i, 0) = i
FOR j = 1 TO m
PRINT "Golosov za partiyou "; j;
INPUT g(i, j)
pr(i, 1) = pr(i, 1) + g(i, j)
NEXT j
INPUT "Ne golosovalo "; g(i, m + 1)
pr(i, 0) = i
pr(i, 1) = 100 * pr(i, 1) / (pr(i, 1) + g(i, m + 1))
NEXT i
CLS
FOR i = 1 TO k
FOR j = 1 TO k
IF pr(i, 1) > pr(j, 1) THEN
x = pr(i, 1)
y = pr(i, 0)
pr(i, 1) = pr(j, 1)
pr(i, 0) = pr(j, 0)
pr(j, 1) = x
pr(j, 0) = y
END IF
NEXT j
NEXT i
PRINT "Itogi po golosovavshim"
PRINT "Okrug #", "Golosovalo (%)", "Pobedila partia #"
FOR i = 1 TO k
PRINT pr(i, 0), pr(i, 1),
IF pr(i, 1) >= p THEN
PRINT "Yes. Sostojlis",
max = 0
FOR j = 1 TO m
IF g(pr(i, 0), j) > max THEN
max = g(pr(i, 0), j)
x = j
END IF
NEXT j
PRINT x
ELSE PRINT "No. Ne sostojlis"
END IF
NEXT i