• Найти сумму вида: -1+2+4-7-11+16+22+.... для n элементов

    Число n изначально равно 0 (число i растет на 1 еденицу) то есть n=n+1 , n=n+2, n=n+3 при этом все нечетные пишутся со знаком минус. попытался как то так решить но не получилось #include

    #include
    #include
    using namespace std;

    int main()
    {int n,i,m=-1,s=2;
    cin>>n;
    for(i=1;i<=n;++i)
    {s=s+i; if(s%2==0){m+=s;}
    else {m=m-abs(s);}

    cout<
    return 0;
    }}

Ответы 2

  • Спасибо, ясно и понятно
    • Автор:

      puffy
    • 5 лет назад
    • 0
  • #include <iostream>

    using namespace std;

    int main()

    {

    int m=1, n, sum=0;

    cin >> n;

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

    sum = (m%2) ? sum-m : sum+m;

    cout << sum << endl;

    return 0;

    }

    Условную тернарную операцию в цикле можно заменить на:

    if(m%2)

    sum=sum-m;

    else

    sum=sum+m;

    К качестве переменной суммы всего выражения возьмем sum предварительно инициализировав ее нулем.

    m у нас в качестве значения определенного элемента в выражении, и начальное значение пусть будет абсолютным значением первого элемента, то есть 1.

    n - количество элементов в сумме.

    Теперь откроем цикл от i=1 до n включительно. Проверка первого элемента: если нечетное, то вычитает его из sum; в противном случае прибавляет в sum. В конце каждой итерации мы будем получать абсолютное значение следующего элемента по формуле m=m+i (в коде этот процесс описан в параметрах цикла, перед i++), затем с увеличением i, уже в новой итерации m будет проходить проверку.

    • Автор:

      rex11
    • 5 лет назад
    • 0
  • Добавить свой ответ

Еще вопросы

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years