けんちょんの競プロ精進記録

競プロの精進記録や小ネタを書いていきます

AtCoder ABC 239 A - Horizon (8Q, 灰色, 100 点)

平方根の求め方を確認しておこう

問題概要

地上  x メートルの高さから見える水平線までの距離は  \sqrt{x(12800000 + x)} と表される。

地上  H メートルの高さから見える水平線までの距離を求めよ。

制約

  •  1 \le H \le 10^{5}
  •  H は整数

解法

 \sqrt{H(12800000 + H)} の値を求めればよい。

C++ では、 \sqrt{A} は関数 sqrt() を用いて sqrt(A) と表せる。よって、答えは

sqrt(H * (12800000 + H))

と表せる。

コード

 H の値は、double 型で受け取ることとした。

#include <bits/stdc++.h>
using namespace std;

int main() {
    double H;
    cin >> H;
    double res = sqrt(H * (12800000 + H));
    cout << fixed << setprecision(10) << res << endl;
}