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

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

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

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

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

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

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

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

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

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

Нахождение суммы матриц - C++
Помогите с написанием программы, не могу уже 2 день написать, выдает ошибки :( ------- Разработать на языке С++ функцию, которая...

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

Нахождение суммы на отрезке - C++
помогите с задачей написать программу нахождения суммы значений функции y=x*x на отрезке с шагом 1 срочно надо !! Нужно решение...

Нахождение суммы ряда... оО - C++
Доброго времени суток! Ребят, помогите пожалуйста решить задачу... Возможно, я бы сам смог её решить, но проблема в том, что я не знаю...

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

Нахождение переменных из суммы A + B - C++
Входные данные: Целое число C Выходные данные: Выведите в выходной файл два целых числа через пробел a и b такие, что a + b = c....


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
BumerangSP
4285 / 1407 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
05.11.2012, 02:47     Быстрое нахождение суммы #2
intом тут не обойтись, тут даже unsigned long не подойдет (0..4294967295). А если в диапазон уложиться, то и полсекунды хватит (замерял через start = clock() - end = clock()).
I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
05.11.2012, 02:50     Быстрое нахождение суммы #3
RESTY, сумма арифметической прогрессии
Только вам нужно что-то придумать с хранением чисел - см. пост 2
OhMyGodSoLong
~ Эврика! ~
1243 / 992 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
05.11.2012, 03:07     Быстрое нахождение суммы #4
Сумма чисел от 1 до N это N * (N + 1) / 2. В 64-битное целое влазит с ушами.
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";
}
Yandex
Объявления
05.11.2012, 03:17     Быстрое нахождение суммы
Ответ Создать тему
Опции темы

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