Вариант 1: Использование цикла for
#include <iostream>
using namespace std;
int main() {
int sum = 0;
for (int i = 2; i <= 5; i++) {
sum += 5 * i;
}
cout << "Сумма: " << sum << endl;
return 0;
}
Блок-схема:
graph LR
A[Начало] --> B{i = 2}
B --> C[sum = 0]
C --> D{i <= 5}
D -- Да --> E[sum = sum + 5 * i]
E --> F[i = i + 1]
F --> D
D -- Нет --> G[Вывод sum]
G --> H[Конец]
Вариант 2: Использование формулы арифметической прогрессии
#include <iostream>
using namespace std;
int main() {
int sum = 0;
int n = 4; // Количество элементов в сумме
int a1 = 10; // Первый элемент арифметической прогрессии
int d = 5; // Разность арифметической прогрессии
sum = (n / 2) * (2 * a1 + (n - 1) * d);
cout << "Сумма: " << sum << endl;
return 0;
}
Блок-схема:
graph LR
A[Начало] --> B{n = 4}
B --> C{a1 = 10}
C --> D{d = 5}
D --> E[sum = (n / 2) * (2 * a1 + (n - 1) * d)]
E --> F[Вывод sum]
F --> G[Конец]
Вариант 3: Использование accumulate
#include <iostream>
#include <numeric>
using namespace std;
int main() {
int sum = accumulate(2, 6, 0, [](int a, int b) { return a + 5 * b; });
cout << "Сумма: " << sum << endl;
return 0;
}
Блок-схема:
graph LR
A[Начало] --> B{sum = accumulate(2, 6, 0, [](int a, int b) { return a + 5 * b; })}
B --> C[Вывод sum]
C --> D[Конец]
Объяснение:
В варианте 1 мы используем цикл for для итерации по значениям от 2 до 5, умножая каждое значение на 5 и добавляя результат к переменной sum.
В варианте 2 мы используем формулу для вычисления суммы арифметической прогрессии.
В варианте 3 мы используем функцию accumulate, которая позволяет вычислить сумму элементов итератора, применяя указанную функцию.
Все три варианта дают один и тот же результат - сумму элементов арифметической прогрессии, но они отличаются своим подходом.