Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
RESTY
5 / 5 / 0
Регистрация: 30.05.2012
Сообщений: 89
#1

Быстрое нахождение суммы - C++

05.11.2012, 02:29. Просмотров 337. Ответов 4
Метки нет (Все метки)

Дано натуральное число 1<=N<=1000000000;
как посчитать сумму чисел от 1 до N менее чем за 1 секунду?)
понятно что
C++
1
2
3
for (int i = 1; i <= n; i++){
        s += i;
}
при таком действие уйдет пара секунд...
как же быстрее сделать?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.11.2012, 02:29
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Быстрое нахождение суммы (C++):

Быстрое нахождение максимального делителя числа - C++
Всем привет! Столкнулся с такой проблемой, у меня дано число n \leq 10 ^ 18. Для использования моего алгоритма, мне нужно быстро найти...

Быстрое нахождение количества делителей натурального числа - C++
Как многие успели убедиться, часто требуется найти количество делителей натурального числа. Предлагаю быстрые алгоритмы для этой задачи. ...

Ввод элементов массива с клавиатуры, вычисление суммы по формуле, нахождение максимальной суммы - C++
Помогите дополнить код. Нужно, чтоб элементы массива вводились с клавиатуры. Выводилось на экран все суммы, которые вычисляются по формуле,...

Нахождение суммы - C++
Помогите написать программу нахождения суммы, вообще не могу разобраться с такими примерами. N, x вводятся с клавиатуры. ...

Нахождение суммы - C++
Помогите пожалуйста решить задачу. Даны натуральные числа N и M(N&gt;M) вычислить: S=знак...

Нахождение суммы - C++
Всем доброго времени суток! Помогите, пожайлуста, решить задание. Просто уже весь день вожусь и вообще ни как не пойму как сделать((( ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BumerangSP
4286 / 1408 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
05.11.2012, 02:47 #2
intом тут не обойтись, тут даже unsigned long не подойдет (0..4294967295). А если в диапазон уложиться, то и полсекунды хватит (замерял через start = clock() - end = clock()).
0
I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
05.11.2012, 02:50 #3
RESTY, сумма арифметической прогрессии
Только вам нужно что-то придумать с хранением чисел - см. пост 2
0
OhMyGodSoLong
~ Эврика! ~
1243 / 992 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
05.11.2012, 03:07 #4
Сумма чисел от 1 до N это N * (N + 1) / 2. В 64-битное целое влазит с ушами.
0
RESTY
5 / 5 / 0
Регистрация: 30.05.2012
Сообщений: 89
05.11.2012, 03:17  [ТС] #5
уже придумал вспомнил лекцию по вышке)
C++
1
2
3
4
5
6
#include <iostream>
void main(){
  __int64 n ;
  std::cin >> n;
  std::cout << ((1 + n)*n/2)<<".00";
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.11.2012, 03:17
Привет! Вот еще темы с ответами:

Нахождение суммы ряда - C++
Составить и отладить процедуру для приближенного вычисления заданной функции y=f(x) путем суммирования членов заданного её ряда s(x)....

Нахождение суммы ряда - C++
link: http:// s014. |radikal| .ru /i327/1509/f1/e7eecc80cd18.png Дайте пожалуйста ссылочку где можно восполнить пробелы в математике,...

Нахождение суммы элементов - C++
Нахождение суммы элементов в каждой строке массива

Нахождение суммы s(x) через for - C++
s(x) = ∑ (-1)^k * ((1+x)^2k)/k s(x)=\sum {(-1)}^{k}\frac{({1+x)}^{2k}}{k}


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
05.11.2012, 03:17
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru