Другие языки программирования и технологии

найти сколько слагаемых необходимо, чтобы сумма 2+4+6+...оказалась больше 100. на c++

Помогите найти сколько слагаемых необходимо, чтобы сумма 2+4+6+...оказалась больше 100. Задача на c++
Kirill Ten
Kirill Ten
107
Стыдно такое не уметь:

int x = 0;
int i = 1;

do
{
x += i * 2;
i++;
}
while(x <= 100);

cout << i - 1 << endl;

P.S. пофиксил
P.P.S. товарищи математики и просто умники, открою вам страшную тайну: это тема программирование и тут думать вредно. Проще в лоб циклом решить и не выпендриваться)
Валера Беляков
Валера Беляков
53 158
Лучший ответ
Здесь не нужен никакой цикл. Здесь нужно отталкиваться от суммы первых n членов арифметической прогрессии. n неизвестно. Но сумма известна. Она больше 100. То есть ((a+a n-ное) /2)*n. При условии, что a первое равно 2 выходит, что a n-ное равно 2n. Путем преобразований получаем неравенство. n^2+n>100 или n^2+n-100>0; Решаем. Выйдет два решения. Нам нужно то, которое положительное. округляем его в сторону большего и получаем нужное целое число. В данном случае это 10.

Вот код:

double n1,n2,n;
n1 = (-1 - sqrt(401))/2;
n2 = (-1 + sqrt(401))/2;
n=n1>0?ceil(n1):n2>0?ceil(n2):false; //используются тернарные операторы для упрощения кода
cout<<n;
EE
Erwere Ewrwrwer
22 076
MaXX1020 Просветленный (22048) - а вот и не верно! Не прочитал внимательно задачу! Но всё равно за помощь + в репу!
хз можить прокатит. типа одна переменная отвечает за число слагаемых, вторая считает сумму
int slag=0;
int sum=0;
while(sum<=100)
{ sum=sum+2;
slag = slag +1;}
cout << slag+1;
Spas Jd
Spas Jd
185
MaXX1020 стыдно так писать, тем более не правильно
2+4+6 ...арифметическая прогрессия

Дополнения к MaXX1020 : вероятно вы "программируете" сайты, причем высоконагруженные.

Похожие вопросы