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

Сума від 1 до n

опубліковано 03.06.13, 18:18:48

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

опубліковано 04.06.13, 01:18:39

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

опубліковано 04.06.13, 03:32:38

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

опубліковано 04.06.13, 14:37:31

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

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

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

опубліковано 21.06.17, 18:27:27

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

опубліковано 25.07.17, 16:07:23

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

опубліковано 16.02.24, 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.24, 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; }