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

Сколько чисел надо взять в последовательности 1+2+3+4...,чтобы получить число,больше чем N?

VANchester, ты не совсем прав, если использовать четные числа, то не всегда ответ адекватный получается, ибо там деление на 2 и получается дробное число, мой совет использовать следующую формулу s=((n*n+n)/2)>N, где s - сумма ряда, n - число членов ряда, N число с которым мы будем совершать проверку, я на С++ реализовал это так:
#include "stdafx.h"
#include< conio.h>
#include <iostream>
using namespace std;

int summ(int n)
{
int s=0,x=1;
while(s<=n)
{
s=(x*x+x)/2;
x++;
}
x--;
cout < < "Достаточно членов ряда, чтобы s>n " < < x < < " т. к. их сумма=" < < s;
return 0;
}

int main()
{
setlocale(LC_ALL, "Rus");
int n=0;
cout < < "Enter n\n";
cin > > n;
summ(n);
_getch();
}
//убрать лишние пробелы
Геннадий Щербаков
Геннадий Щербаков
7 837
Лучший ответ
Что-то вопрсо не очень понятен. . Но может здесь замешан факториал? И тогда будет что-то типа n!+1
Фёдор Иволгин
Фёдор Иволгин
7 859
Формула расчёта суммы членов арифметической (а именно такая и есть у нас) прогрессии:
((a(1) + a(n))/2)*n
где n - количество чисел, которое взяли, а (n) - это число с порядковым номером n (единица имеет порядковый номер 1)

Нам нужно, чтобы она (сумма) была больше N
Пишем неравенство (n возьмём за икс для удобства недалёких)
((a(1) + a(х)) /2)*х > N

Удачи с упрощением неравенства ;)