Не знаю как развязать арифметическую и геометрическую прогрессию. - VB
Формулировка задачи:
пользователем задана последовательность трех чисел K1, K2, K3. Если они образуют арифметическую или геометрическую прогрессию , найти сумму всех ее членов с номерами от N до M :
Kn + Kn+1 + Kn+2 + ... + Km-1 + Km.
натуральные числа N и M задаются пользователем (M>=N>=1)
Помогите решить. Очень нужно.
Решение задачи: «Не знаю как развязать арифметическую и геометрическую прогрессию.»
textual
Листинг программы
Option Explicit
Private Sub Form_Load()
Dim k1 As Double, k2 As Double, k3 As Double
Dim m As Long, n As Long, q As Double
Dim it As Double, s As Double
k1 = InputBox("k1", vbNullString, "0")
k2 = InputBox("k2", vbNullString, "1")
k3 = InputBox("k3", vbNullString, "2")
n = InputBox("n", vbNullString, "1")
m = InputBox("m", vbNullString, "2")
n = n - 1
If k2 - k1 = k3 - k2 Then
' Арифметическая
q = k2 - k1
s = (2 * k1 + (n - 1) * q) * n / 2
s = (2 * k1 + (m - 1) * q) * m / 2 - s
ElseIf k2 / k1 = k3 / k2 Then
' Геометрическая
q = k2 / k1
s = (k1 * (1 - (q ^ n))) / (1 - q)
s = (k1 * (1 - (q ^ m))) / (1 - q) - s
Else
' Просто набор чисел
MsgBox "Не является прогрессией"
Exit Sub
End If
MsgBox "Сумма = " & s
End Sub