Алгоритм Фибоначчи - QBasic
Формулировка задачи:
Насколько верное название этой темы я не знаю.
Задана последовательность натуральных чисел по
рекуррентному правилу an=an-1 + an-2
и a1 = a2 = 1. И еще, IF a MOD 10 = 0 THEN f = a \ 10
Вывести на экран 22 числа. Это не числа Фибоначчи. Но алгоритм похож
на него.
Листинг программы
- DECLARE FUNCTION f! (n!)
- CLS
- FOR i = 1 TO 22
- PRINT f(i)
- NEXT i
- END
- FUNCTION f (n)
- IF n <= 2 THEN
- f = 1
- ELSE
- a = f(n - 1) + f(n - 2)
- IF a MOD 10 = 0 THEN
- f = a \ 10
- ELSE
- f = a
- END IF
- END IF
- END FUNCTION
Решение задачи: «Алгоритм Фибоначчи»
textual
Листинг программы
- Function fb(n As Long) As Long
- Dim a As Long, b As Long, c As Long, i As Long
- a = 1
- b = 1
- For i = 3 To n
- c = a + b
- a = b
- If c Mod 10 = 0 Then b = c \ 10 Else b = c
- Next i
- fb = b
- End Function
Объяснение кода листинга программы
- Входная переменная n — количество итераций, которые нужно выполнить для получения n-го числа Фибоначчи.
- Переменные a, b, c, i — используются для хранения и вычисления чисел Фибоначчи.
- a и b инициализируются единицами.
- Затем, в цикле от 3 до n, выполняются следующие действия: a) c присваивается сумма a и b. b) a присваивается значение b. c) Если c делится на 10 без остатка, то b присваивается целая часть от деления c на 10, иначе b присваивается c.
- После завершения цикла, значение переменной b присваивается функции fb.
- Функция возвращает значение b.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д