1

Тема: "Знайти суму елементів арифметичної прогресії ітераційними методом"

Доброго ранку:)
Виникли проблеми з кодом.
Завдання було таке:
Знайти суму К елементів арифметичної прогресії з
першим елементом A 1 та різницею d інтераційним методом.
Наскільки я правильно зрозуміла, то інтераційний метод це за допомогою циклу:) Отже я в циклі рахувала суму елементів, за формулою An=A1+(n-1)*d прогресії. Але чомусь програма рахує не правильно. Виправте помилку будь ласка. Наперед дякую;)

#include <bits/stdc++.h>
using namespace std;

int main()
{
    int n, a, d, sum;
    cout<<"n=";
    cin >> n;
    cout<<"a=";
    cin>>a;
    cout<<"d=";
    cin >> d;
    sum = 0;
    for (int i = 1; i<=n; i++)
    {
        sum += a+(i-1)*d;

    }
    cout << sum << endl;
    system("pause");
    return 0;
}

2

Re: "Знайти суму елементів арифметичної прогресії ітераційними методом"

Якщо я все правильно зрозумів
вам треба то поміняти так.

for (int i = 1; i<=n; ++i)

Та прочитати про різницю між i++ та ++i
А ту формулу вам викладач дав чи ви самі придумали?

Подякували: podruzhka_k1

3

Re: "Знайти суму елементів арифметичної прогресії ітераційними методом"

Дякую:)
Я щойно зрозуміла, що 110 для A1=2,d=2 і n=1 правильна була :[ . Це ж треба було цілий день мучити правильну програму :o, зневіритись, написати на кіберфорум і потім виявити що програма була правильна :o

Подякували: koala1

4

Re: "Знайти суму елементів арифметичної прогресії ітераційними методом"

Будь ласка, коли наступного разу питатимете, одразу викладайте конкретну інформацію, чому ви вважаєте, що програма містить помилку. Це суттєво зекономить і нам, і вам час - зокрема, із суттєвою імовірністю ви побачите, що помилки немає чи в чому саме вона полягала.
Міняти конкретно тут i++ на ++i не має сенсу - в кращому разі пів такту зекономите; якщо вже оптимізувати - то якщо замість обчислення Ai за формулою через i перейти на обчислення його за рекурентною формулою, то швидкість точно зросте, а якщо замість циклу поставити формулу суми - то й поготів.
До речі, звертаю увагу, що якщо робити цикл від 0 поки i<n, а не від 1 до n, то формула трохи спрощується. Але це також несуттєво.

5

Re: "Знайти суму елементів арифметичної прогресії ітераційними методом"

    int sum = 0;
    for (int i = 0; i<n; i++)
    {
        sum += a;
        a += d;
    }