競技プログラミングのためにC++で使えそうなことをまとめる
自分用にまとめます。ちょくちょく更新していくと思います。
C++で浮動小数点について、表示桁数を指定する。
ライブラリ:iomanip
関数:
setprecision(int n)
#include <iostream> #include <iomanip> using namespace std; int main() { double a = 13.1415926535; cout << setprecision(10) << a << endl; cout << fixed << setprecision(10) << a << endl; }
出力
13.14159265 13.1415926535
メモ:
fixedを使うと、整数部分も含めてsetprecisionで指定した桁数で表示される。
fixedを使わなければ、整数部分を含めずにsetprecisionで指定した桁数で表示される。
参考サイト(cppreference.com)
std::setprecision - cppreference.com
std::fixed, std::scientific, std::hexfloat, std::defaultfloat - cppreference.com
√(ルート)の計算
ライブラリ:cmath
関数:
float sqrt(float x)
double sqrt(double x)
long double sqrt(long double x)
double sqrt(Integral x) // C++11 から
float sqrtf(float x) // C++17 から
long double sqrtl(long double x) // C++17 から
#include <cmath> #include <iomanip> #include <iostream> using namespace std; int main() { double a = 3.141592; cout << sqrt(a) << endl; cout << setprecision(10) << sqrt(a) << endl; }
出力
1.77245 1.772453667
メモ:
関数がオーバーロードされているので、引数の型によって返り値の方が異なる。
参考サイト(cppreference.com)
sqrt - cpprefjp C++日本語リファレンス