uses crt;
const n=15;
a=100;
var i,max:word;
c:array[1..n]of real;
chislo:real;
function factorial(a:word):real;
var j:word;n:real;
begin
n:=1;
if a=0 then
begin
factorial:=1;
exit;
end
else
begin
for j:=a downto 1 do
n:=n*j;
factorial:=n;
end;
end;
function Func(el:real;index:word):boolean;
begin
if el=ln(1+factorial(2*index-1)) then Func:=true else Func:=false;
end;
begin
clrscr;
randomize;
for i:=1 to n do
begin
c:=2*random(a)/(random(a)+1);
write(' ',c:2:2);
end;
writeln;
writeln;
max:=0;
for i:=1 to n do
if Func(c,i)=true then begin chislo:=ln(1+factorial(2*i-1)); max:=i; end;
if max=0 then writeln('not elements found!') else writeln(max, ' ',chislo);
readkey;
end.
нахождение максимального элемента в последовательности(Pascal)
Дана некоторая последовательность C. Найти максимальный номер i, при котором выполнено нижеследующее условие:
C1=ln(1+1!), C2=ln(1+3!), C3=ln(1+5!)... Ci<1.0e+0.6
все вроде как надо, тока вот соответствия будут очень редко встречаться, т.е. почти никогда. если что забивай массив c целыми числами и потом в коде, где идет сравнение el с ln(), делай сравнение с round(ln()), тогда и совпадения будут чаще появляться. к тому же есть ограничение на значение n.
спасибо друг!