Вычисление суммы необычного ряда (6) - QBasic
Формулировка задачи:
Надо вычислить сумму 100 слагаемых
f(1)^.07 + f(2)^.07 + ... + f(100)^.07
где f(i) - число Фибоначчи. Программа сосчитала и получила
число 800.0099. В качестве ответа можно записать 800.01
Вопросы
1. Как можно решить иначе?
2. Можно ли сократить вычисления? Ведь тут
числа Фибоначчи есть в каждом слагаемое.
3. Сложно ли понять программу? Что тут лишнее?
Решение задачи: «Вычисление суммы необычного ряда (6)»
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.
Объяснение кода листинга программы
- Объявлены три переменные: count, a и b типа integer и double соответственно, а также переменная s типа double.
- Переменная count инициализируется значением 0 и используется в качестве счетчика в цикле.
- Определена функция f(n; a, b) типа double, которая принимает три аргумента типа integer и double.
- Внутри функции происходит увеличение значения переменной count на 1.
- Если значение переменной n меньше или равно 2, то результатом работы функции становится значение переменной a.
- В противном случае, функция вызывает саму себя (f(n-1, a+b, a)), передавая в нее уменьшенное на 1 значение n и суммарное значение a и b, а также a в качестве аргументов.
- Результатом работы функции всегда является значение типа double.
- После определения функции, объявлен цикл for, который выполняет 100 итераций.
- На каждой итерации значение переменной s увеличивается на результат вычисления функции f(i, 1, 1), возведенный в степень 0.07.
- После завершения цикла, выводится значение переменной s до трех знаков после запятой и значение переменной count.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д