AIZU ONLINE JUDGE

AOJ ITP1 2_A(Small, Large, or Equal)を解く

AOJ_ITP1_2_A

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

ITP1 のトピック2では、条件分岐を学びます。「条件によって実行する内容を変え、処理の流れを制御する構造文を学習します。」とあります。この学習コースを通じて、Python に慣れていきたいと考えています。

問題(2_A: Small, Large, or Equal)

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

AOJ ITP1 2_A問題:Small, Large, or Equal

if – else if – else 文を学びます。

解答案

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

#include <iostream>

using namespace std;

int main()
{
	int a, b;

	cin >> a >> b;

	if (a > b) {
		cout << "a > b" << endl;
	} else if (a < b) {
		cout << "a < b" << endl;
	} else {
		cout << "a == b" << endl;
	}

	return 0;
}

C と C++ は、プリプロセッサには、#elif がありますが、本文は、else if と書く必要があります。また条件文の本文は、上記の例のように複合文で書くことをお勧めします。

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

if – elif – else で記載します。Python の特徴ですが、条件文の本文の範囲がインデントだけで決まります。これにより、波カッコが必要なくなっています。

a, b = map(int, input().split())
if a > b:
    print("a > b")
elif a < b:
    print("a < b")
else:
    print("a == b")

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

最後に

条件分岐が書けるようになれば、プログラムで書ける幅が広がります。C と C++ では、条件文の本文を複合文で書かない場合に、文を追加すると不具合になる可能性があります。Python は、条件文の本文の範囲が見た目(インデント)と合うため、この点でも優れていると思います。

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

COMMENT

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

CAPTCHA