У меня стоит задача подсчитать сумму всех чисел от 0 до 1000
При компиляции кода, вместо 500500, я получаю 500500000. В чём непосредственно проблема? https://pastebin.com/LTrDST8z
#include <iostream>
using namespace std;
int main()
{
int x;
int y;
int all = 0;
int sum = 0;
for (int i = 0; i < 1000; i++)
{
all = all + 1;
for (int i = 0; i < 1000; ++i)
{
sum = sum + all;
}
}
cout << sum ;
;
}
Ответы (2 шт):
Автор решения: AndryS1
→ Ссылка
- Если вы хотите решать задачу не циклами (что в разы быстрее), можете воспользоваться формулой суммы (1000 + 1) * (1000 / 2)=500500
- Немного не понял зачем вам там вложенный for (там ещё и используется i в всех циклах) вот моя версия на циклах
#include <iostream>
int main()
{
int x;
int y;
int all = 0;
for (int i = 0; i <= 1000; i++)
{
all += i;
}
std::cout << all;
}
Автор решения: Эникейщик
→ Ссылка
Проблема во внутреннем цикле. Он не нужен. Фактически вы считаете сумму от 1 до 1000 тысячу раз, что и получаете в результате.