Предмет: Информатика, автор: yapiledreke

Найти сумму вида: -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;
}}

Ответы

Автор ответа: Единорожек34
1

#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 будет проходить проверку.


yapiledreke: Спасибо, ясно и понятно
Похожие вопросы
Предмет: Математика, автор: timurloza1
Предмет: Алгебра, автор: daassha