AIZU ONLINE JUDGE

AOJ ITP1 10_A(Distance)を解く

AOJ_ITP1_10_A

Aizu Online Judge(AOJ)が提供している「プログラミング入門」(ITP1)の10_A問題をC++とPython で解いてみました。

ITP1 のトピック10では、数学関数について学びます。「基礎的な数学関数を学習します。」とあります。この学習コースを通じて、Python に慣れていきたいと考えています。

問題(10_A: Distance)

問題はリンク先をご覧ください。

AOJ ITP1 10_A問題:Distance

浮動小数点を使って2点間の距離を求める問題です。

解答案

C++ プログラム例(ITP1 10_A)

2点間の距離は、中学数学で履修しますが、以下の式で求めることができます。

$$\sqrt{(x1 \;-\; x2)^2 + (y1 \;-\; y2)^2}$$

C の標準ライブラリ math.h(cmath)をインクルードして、sqrt 関数を使います。iostream で、浮動小数点を出力する方法は、4_A で紹介しました。

以下は、C++ の解答案となります。

#include <iostream>
#include <ios>      // fixed
#include <iomanip>  // setprecision
#include <cmath>

using namespace std;

int main()
{
	double x1, y1, x2, y2;
	cin >> x1 >> y1 >> x2 >> y2;

	cout << fixed << setprecision(5) << sqrt((x1 - x2)*(x1 - x2) + (y1 - y2)*(y1 - y2)) << endl;

	return 0;
}

Python プログラム例(ITP1 10_A)

Python では、math モジュールを import して math.sqrt を使います。浮動小数点の出力方法は、4_A で紹介したf文字列を使いました。

import math

x1, y1, x2, y2 = map(float, input().split())
print(f"{math.sqrt((x1 - x2) ** 2 + (y1 - y2) ** 2):.5f}")

上記プログラムは、すべて AOJ で「AC(Accepted=正解)」と判定されます。

最後に

トピック10では、数学関数について学びます。数学関数を使う場合、C++ では、math.h をインクルードして、Python では、math モジュールを import します。

引き続き、ITP1 の問題を紹介していきます。

COMMENT

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA