Найти сумму вида: -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; }}
#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 будет проходить проверку.