理系の気ままメモ

自分の興味のあることや発見したことや思ったことなどを自由気ままに書くブログ。

競技プログラミングのために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++日本語リファレンス