Грабли: различия между версиями
Перейти к навигации
Перейти к поиску
Ctrlalt (обсуждение | вклад) |
Ctrlalt (обсуждение | вклад) Нет описания правки |
||
Строка 12: | Строка 12: | ||
* [http://codeforces.ru/blog/entry/17584 Codeforces — Weird bug with pow?] | * [http://codeforces.ru/blog/entry/17584 Codeforces — Weird bug with pow?] | ||
* [http://codeforces.ru/blog/entry/6344 Codeforces — Работа с вещественными числами] | * [http://codeforces.ru/blog/entry/6344 Codeforces — Работа с вещественными числами] | ||
=== Если не хватает точности double === | |||
# Меняем все double на long double; | |||
# Меняем все вызовы cstdio (scanf/printf) на вызовы iostream (cin/cout); | |||
# Добавляем l ко всем функциям cmath (sqrt -> sqrtl, atan2 -> atan2l); | |||
# Сдаём под g++. | |||
* [http://codeforces.com/contest/598/submission/14750380 #14750380] vs [http://codeforces.com/contest/598/submission/14750383 #14750383] | |||
* [http://codeforces.com/contest/600/submission/14750408 #14750408] vs [http://codeforces.com/contest/600/submission/14750411 #14750411] | |||
=== В <math.h> Visual C++ уже заняты глобальные имена j0, j1, jn, y0, y1, yn === | === В <math.h> Visual C++ уже заняты глобальные имена j0, j1, jn, y0, y1, yn === |
Версия от 21:09, 10 декабря 2015
cin/cout работает медленнее scanf/printf
- Codeforces — Ввод/вывод в C++
- Codeforces — Снова про ввод/вывод в C++
- Habrahabr — Насколько медленны iostreams?
endl сбрасывает буфер вывода после перевода строки
Вещественные числа нужно использовать с осторожностью; функции <math.h> работают с вещественными числами
- isocpp.org — Why doesn’t my floating-point comparison work?
- Макконнелл С. Совершенный код / С. Макконнелл. — М.: Русская редакция, 2010. — 896 с. — П. 12.3. «Числа с плавающей запятой», с. 286
- Codeforces — Weird bug with pow?
- Codeforces — Работа с вещественными числами
Если не хватает точности double
- Меняем все double на long double;
- Меняем все вызовы cstdio (scanf/printf) на вызовы iostream (cin/cout);
- Добавляем l ко всем функциям cmath (sqrt -> sqrtl, atan2 -> atan2l);
- Сдаём под g++.
В <math.h> Visual C++ уже заняты глобальные имена j0, j1, jn, y0, y1, yn
- Timus — Как писать решения на C/C++ (Раздел «Особенности компилятора по сравнению с другими 32-битными компиляторами C/C++»)