競技プログラミング

ABC086A – Product

https://atcoder.jp/contests/abs/tasks/abc086_a

イントロダクション

本記事では、競技プログラミング問題「偶数か奇数かの判定」について、Swiftを用いて解説します。具体的には、与えられた2つの整数の積が偶数か奇数かを判定する問題に対する解法を示します。

問題の詳細説明

シカのAtCoDeerくんは二つの正整数 a,b を見つけました。aとbの積が偶数か奇数かを判定することが目的です。制約として、1 ≤ a,b ≤ 10000であり、a,b は整数であるとされています。この問題では、aとbの値を受け取り、その積が奇数なら”Odd”、偶数なら”Even”と出力する必要があります。

問題の要素解説

この問題は、基本的な数学の知識(偶数と奇数の性質)とプログラミングの基本的な構文(入力の取得、条件文)を使って解くことができます。偶数と奇数の積の性質を理解していれば、効率的な判定方法を実装することが可能です。

解答戦略

Swiftには標準入力からデータを取得するreadLine()という関数があります。これを使用して、まずはaとbの値を取得します。その後、どちらかの数が偶数であれば、その積は必ず偶数になるという性質を利用します。そのため、if a % 2 == 0 || b % 2 == 0という条件文で、aまたはbが偶数であるかを確認します。偶数であれば”Even”を出力し、それ以外の場合は”Odd”を出力します。

コードの解説

以下に示すコードは、標準入力から2つの数字を読み取り、その積が偶数か奇数かを判定します。

import Foundation

// 標準入力から2つの数字を読み取る
let input = readLine()!.split(separator: " ").map { Int($0)! }
let a = input[0]
let b = input[1]

// 偶数か奇数かを判定する
if a % 2 == 0 || b % 2 == 0 {
    print("Even")
} else {
    print("Odd")
}

考察と最適化

このコードは既に最適化されています。aまたはbが偶数であるかどうかを一度だけ確認するだけで、その積が偶数か奇数かを判断できます。また、この方法は与えられる入力の大きさに関係なく一定の時間で結果を得ることができます。

結論

本記事では、Swiftを用いて、2つの整数の積が偶数か奇数かを判定する問題を解きました。これは基本的な数学の知識とプログラミングの基本的な構文を組み合わせることで解決できる問題でした。

コメントとフィードバックの募集

皆さんからのコメントやフィードバックを歓迎します。もし何か疑問点があったり、他の解決方法を思いついたら、ぜひコメントしてください。

COMMENT

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