Решение с использование длинной арифметики.
var
i, j, n, len, rem: integer;
a: array[1..200] of byte;
begin
write('Введите число: ');
read(n);
len := 1;
a[1] := 1;
for i := n + 1 to 99 {100} do
begin
for j := 1 to len do
begin
rem := a[j] * i + rem;
a[j] := rem mod 10;
rem := rem div 10;
end;
while rem > 0 do
begin
inc(len);
a[len] := rem mod 10;
rem := rem div 10;
end;
end;
writeln('Произведение чисел из интервала (', n, '; 100): ');
for i := len downto 1 do write(a[i]);
end.
Пример работы программы:
Введите число: 1
Произведение чисел из интервала (1; 100):
1948348720420644788695888257080283249381963823594360049498643927185579338215778728274424636079639781709574621897447185108592230400000000000000000000
<em>// PascalABC.NET 3.2, сборка 1353 от 27.11.2016</em>
<em>// Внимание! Если программа не работает, обновите версию!</em>
begin
var a:=MatrRandom(10,15,-50,50); a.Println(4);
var amax:=-100;
var amin:=100;
foreach var x in a do
if x>amax then amax:=x
else
if x<amin then amin:=x;
Writeln('Amax-Amin=',amax-amin)
end.
<u>Пример</u>
-29 24 36 45 -14 -2 35 36 27 5 -31 26 0 -43 -16
41 37 -35 -6 0 -27 28 13 -37 -40 -45 -6 7 -38 -26
6 6 4 -22 -43 -41 27 -50 -31 -50 -37 -10 -38 35 -27
-14 0 -42 34 -12 -24 40 42 48 -26 -6 -39 23 34 -19
-46 -23 23 3 49 13 -29 -29 -50 -25 -37 37 47 -7 -13
33 16 28 40 24 6 -15 24 24 48 16 15 6 -46 14
48 -46 -34 39 47 36 17 10 37 11 -36 -22 -42 9 -26
-10 44 -2 10 -9 29 -16 33 -40 26 20 4 49 5 -18
48 16 -33 -13 -23 -41 21 -43 -3 2 -34 -45 42 -21 10
-22 -23 -36 0 8 23 -33 46 13 36 14 -28 -44 -38 -24
Amax-Amin=99
221₃=2*3²+2*3+1=25₁₀=11001₂
Количество единиц = 3
Var
number, day, month: integer;
begin
writeln('Напишите день');
readln(number);
day := (number mod 30);
month := (number div 30);
writeln(day, '.', month);
end.