Итеративно вычислить сумму по формуле
#include <cstdio>
#include <clocale>
#include <cmath>
using namespace std;
int main()
{
float N, s, a_i;
int g;
setlocale(LC_ALL, "Russian");
g = 1;
for (int counter = 1; counter <= N; counter++)
{
if (g % 2 = 0)
{
a_i = counter * 3;
}
else
{
a_i = counter * (counter - 2);
}
s += pow((ceil(a_i - g)));
}
g+=1
printf("%f", s);
}
Ответы (2 шт):
Автор решения: Harry
→ Ссылка
Да проще написать заново, чем исправлять...
long long S(unsigned int N)
{
int sum = 0;
for(int i = 1; i <= N; ++i)
{
long long a = i*((i%2==0) ? 3 : i-2)-i;
sum += a*a;
}
return sum;
}
Допускаю замену long long на double, но смысла не вижу :)
Автор решения: Danis
→ Ссылка
=это присвоение, а==это сравнение поэтому местоif (g % 2 = 0)надо писатьif (g % 2 == 0)- функция
powпринимает два аргумента - число, степень, а вы передаёт ей одно число. чтобы возвести в квадрат надо писать такpow(ceil(a_i - g), 2) g += 1вы забыли;, и его можно записать какg++;Nу вас равен0поэтому цикл сразу заканчивается
