eolymp
bolt
Try our new interface for solving problems
Problems

The sum from 1 to n

published at 6/3/13, 6:18:48 pm

Математики под фразой «целые числа от 1 до N» подразумевают интервал, у которого правый конец больше левого. Сложность задачи 73%, потому что ни один здравомыслящий человек не догадается, что правый конец интервала от 1 до n может быть отрицательным числом?

published at 6/4/13, 1:18:39 am

Аргументы неубедительны. Задача 1464 сформулирована по тому же принципу, что и 1621 (то есть, те же грабли). Несмотря на то, что задача есть на сайте informatics, я по-прежнему считаю ее неудачным примером, который якобы демонстрирует важность внимательного анализа условия задачи. Цитата к задаче 1464 вообще может относиться к любой задаче. "Пример вывода выходных данных приводится по двум причинам: 1. Чтобы Вы могли видеть правильный формат вывода результата. 2. Чтобы Вы иногда могли считать, что Ваше неправильное решение выдаёт правильный ответ.

published at 6/4/13, 3:32:38 am

В качестве ещё одного "неубедительного аргумента", вспомните, как Поль Дирак решал задачу о 3-х рыбаках и пойманной ими рыбе - в результате появился целый раздел современной физики.

published at 6/4/13, 2:37:31 pm

Решение задачи о трех рыбаках Поля Дирака – это очень остроумная шутка великого физика, не связанная с его работами по квантовой физике. Рыбаки тогда получают равное количество рыб. Рыбаков может быть не трое, а бесконечно много :) Если в задаче 1621 предполагалась шутка, то она неудачная.

awpris replied:
Это не шутка, как и мир античастиц.
published at 12/23/14, 2:25:23 pm

Да что за тупость ? Если нужно посчитать когда n <= 0, так и пишите что ... "произвести сумму от n до 1 включительно в случае n <= 0".

published at 6/21/17, 6:27:27 pm

>>jhendrix_92 сумма от 1 до n и от n до 1 разве не одно и тоже???)

published at 7/25/17, 4:07:23 pm

long double и никаких проблем :)

published at 2/16/24, 8:54:47 am

include <iostream>

using namespace std;

int main() { long longn, m, ans; cin >> n; m = abs(n); if (m % 2 == 0) ans = m / 2 * (m + 1); else ans = (m + 1) / 2 * m; if (n > 0) cout << ans << endl; else cout << 1 - ans << endl; }

published at 2/16/24, 8:54:48 am

include <iostream>

using namespace std;

int main() { long longn, m, ans; cin >> n; m = abs(n); if (m % 2 == 0) ans = m / 2 * (m + 1); else ans = (m + 1) / 2 * m; if (n > 0) cout << ans << endl; else cout << 1 - ans << endl; }