Найти сумму числового ряда - QBasic
Формулировка задачи:
Задан ряд
1 + 2/(3*4) + (5*6)/(7*8*9) + (10*11*12)/(13*14*15*16) + ...
Всего 25 слагаемых (625 натуральных чисел)
Алгоритм ряда очевиден. Найти сумму этого ряда
Для решения задачи была использована формула
1 + 3 + 5 + ... (2n-1) = n2
Вопросы
1. Есть ли иное решение?
2. Я ходил около рекурсивного решения, но не нашел?
3. Изначально я хотел для этого ряда задать число
натуральных чисел, из которых он состоит, но эта задача
оказалась сложнее. И я решил задавать число слагаемых.
Может это не так сложно, как я думаю?
примечание
Очевидно, что если слагаемых N, то число натуральных
чисел N2
Решение задачи: «Найти сумму числового ряда»
textual
Листинг программы
DIM s AS DOUBLE, m AS DOUBLE, i AS LONG, j AS LONG, k AS LONG s = 1 k = 1 FOR i = 1 TO 24 m = 1 FOR j = 1 TO i k = k + 1 m = m * k / (k + i) NEXT j k = k + j m = m / k s = s + m NEXT i PRINT s
Объяснение кода листинга программы
- Переменная
sинициализируется значением 1. - Переменная
mинициализируется значением 1. - Переменная
iинициализируется значением 1. - Переменная
jинициализируется значением 1. - Переменная
kинициализируется значением 1. - Запускается цикл
FORдля переменнойiот 1 до 24. - Внутри цикла
FORпеременнойmприсваивается значение 1. - Запускается вложенный цикл
FORдля переменнойjот 1 до текущего значения переменнойi. - Внутри вложенного цикла
FORпеременнойkприсваивается значение текущего значения переменнойk+ значение переменнойj. - Переменной
mприсваивается значениеk * (k + i)/ (k + i). - Выполняется команда
NEXT j, чтобы перейти к следующей итерации вложенного цикла. - Значение переменной
kувеличивается на значение переменнойj. - Переменной
mприсваивается значениеm / k. - Значение переменной
sувеличивается на значение переменнойm. - Выполняется команда
NEXT i, чтобы перейти к следующей итерации внешнего цикла. - Значение переменной
kувеличивается на значение переменнойi. - Переменной
mприсваивается значение 1. - После завершения циклов выводится значение переменной
s.