Сумма квадратов
Нужно найти сумму квадратов четных чисел от 1 до N(введено с клавиатуры), числа должны быть больше 0, иначе выйдет ошибка. У меня в коде выводится только квадрат последнего введенного числа. Вот мой код:
#include <iostream>
using namespace std;
int main()
{
setlocale(0, "");
int a;
int N;
int total=0;
int sum = 0;
cout << "Введите кол-во чисел: ";
cin >> N;
cout << "Введите числа: ";
for (int i = 0; i < N; ++i)
{
cin >> a;
}
if (a < 0)
{
cout << "Это число меньше 0" << endl;
}
if (a > 0)
{
total= a* a;
sum += a;
}
cout << "Сумма квадратов: " << total << endl;
}
Ответы (3 шт):
for (int i = 0; i < N; ++i)
{
cin >> a;
}
т.е. вы в цикле собрали N чисел, но ничего с ними не делали, а уже после цикла что-то сделали с a - вот вам и неверный результат :)
всю остальную логику тоже надо в цикл этот разместить
Естественно у Вас будет выводиться только последнее число, ибо Вы перезаписываете каждый раз переменную "a". Оберните 2 if блока после цикла for в этот же цикл.
По-моему, вы не поняли условие.
Я его понял так - вы вводите число N, ну, скажем, 12. И суммируете квадраты всех четных чисел, лежащих в диапазоне [1,N] - т.е. для 12 это
Проще всего посчитать эту сумму так (нужно немного знания математики):
cout << "Введите число N: ";
cin >> n;
n /= 2;
cout << "Сумма квадратов: " << 2*n*(n+1)*(2*n+1)/3 << endl;
Математика сводится к вычислению суммы:
При этом вполне объяснимо условие, что если N меньше 0, то получается ошибка...

