PHP 問題:プレゼント企画
-新しく学んだこと-
・標準入力の空白区切り
・条件式 AかつB
・繰り返し
問題:
あなたは、プレゼント企画を実施しました。
プレゼントはAとBの2種類があります。
当選者は以下の条件に従って、選ばれます。
・Xの倍数番目はプレゼントA
・Yの倍数番目はプレゼントB
応募者毎に当選情報を出力してください。プレゼントAとBの両方当選した人はAB,Aだけ当選した人はA,Bだけ当選した人はB,どちらも当選してない人はNを表示してください。
入力例1
5 2 4
答え
N
A
N
AB
N
プログラミングの前に動きのイメージをします。
プログラムに直すと
3行目:必要の無い行です。プレゼントの種類を入れるつもりでした。
4行目:応募者の~番目を入れるための箱を用意しました。
5行目:入力された数字を$numに入れます。
6行目:$numを対象に空白で区切り、$array[0~2]それぞれに数字を入れます。
$array[0]は、応募者。$array[1]は、Xの倍数。$array[2]は、Yの倍数です。
7行目:応募者の番目が応募者数より小さい間は、8~19行目の命令を続けます。
8行目:番目の数字に+1します。(最初は1番目となります)
9行目:Xで割り切れる かつ Yで割り切れる番目なのかを判断します。
10行目:9行目の条件に合えば”AB”を表示します。
12行目:9行目の条件に合わず、Xで割り切れる番目なのかを判断します。
13行目:12行目の条件に合えば”A”を表示します。
15行目:9行目の条件に合わず、Yで割り切れる番目なのかを判断します。
16行目:15行目の条件に合えば”B”を表示します。
18行目:9、12、15行目の条件に合わなければ、”N”を表示します。
・explode(区切り文字,対象)
対象の文字列を区切り文字で分割します。
今回は、5 2 4の文字列を対象に空白(” ”)を区切り文字としています。
・条件式 &&
条件式を組み合わせたい場合につかいます。
今回は、A && B AかつBである場合を使っています。
他には
A || B AもしくはB当てはまる。
A xor B AかBのどちらか1つだけが当てはまる。
などがあります。
・while(条件式){}
条件式に合うあいだは、{}内の命令を繰り返します。
今回は、応募者の番目が応募者数より小さいあいだは を条件式にしています。