eolymp
bolt
Попробуйте наш новый интерфейс для отправки задач
Задачи

Сумма от 1 до n

опубликовано 03.06.2013, 18:18:48

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

опубликовано 04.06.2013, 01:18:39

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

опубликовано 04.06.2013, 03:32:38

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

опубликовано 04.06.2013, 14:37:31

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

awpris ответил:
Это не шутка, как и мир античастиц.
опубликовано 23.12.2014, 14:25:23

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

опубликовано 21.06.2017, 18:27:27

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

опубликовано 25.07.2017, 16:07:23

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

опубликовано 16.02.2024, 08:54:47

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; }

опубликовано 16.02.2024, 08:54:48

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; }