Вычисление суммы необычного ряда (6) - QBasic

Формулировка задачи:

Надо вычислить сумму 100 слагаемых f(1)^.07 + f(2)^.07 + ... + f(100)^.07 где f(i) - число Фибоначчи. Программа сосчитала и получила число 800.0099. В качестве ответа можно записать 800.01 Вопросы 1. Как можно решить иначе? 2. Можно ли сократить вычисления? Ведь тут числа Фибоначчи есть в каждом слагаемое. 3. Сложно ли понять программу? Что тут лишнее?
REM
REM  S = 800.0099
REM
 
DECLARE FUNCTION f! (n!, a!, b!)
 
CLS
CLEAR , , 20000
 
FOR n = 1 TO 100
   S = S + f(n, 1, 1) ^ .07
NEXT
 
PRINT S
END
 
FUNCTION f (n, a, b)
   IF n <= 2 THEN
      f = a
   ELSE
      f = f(n - 1, a + b, a)
   END IF
END FUNCTION

Код к задаче: «Вычисление суммы необычного ряда (6) - QBasic»

textual
var 
  count : integer := 0;
function f(n : integer; a, b : double) : double;
begin
  inc(count);
  if n <= 2 then result := a
  else result := f(n - 1, a+b, a);
end;
 
var s : double;
begin
  for var i := 1 to 100 do s := s + power(f(i, 1, 1), 0.07);
  writeln(s:0:3);
  writeln(count);
end.

9   голосов, оценка 4.000 из 5


СОХРАНИТЬ ССЫЛКУ
Похожие ответы