Показать сообщение отдельно

  #5  
Старый 25.04.2008, 12:39
krypt3r
Познавший АНТИЧАТ
Регистрация: 27.04.2007
Сообщений: 1,044
Провел на форуме:
3660186

Репутация: 905


По умолчанию

Че-то в голову ничего не приходит кроме тупого брута((
Код:
program laba;

function f (n : integer) : longint;
begin
  if n = 0 then
    f := 1
  else
    f := n * f (n - 1);
end;

var
  i, n, a : longint;

begin
  write ('Vvedite chislo a: ');
  readln (a);
  i := 0;
  while 1 = 1 do begin
    if (f (i) < a) and (f (i + 1) > a) then begin
      writeln ('a = ', a);
      writeln ('n = ', i);
      writeln ('n! = ', f (i));
      writeln ('(n + 1)! = ', f (i + 1));
      break;
    end;
    inc (i);
  end;
end.
 
Ответить с цитированием