takenoko03の日記

PHP言語で仕事する

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

 

プログラミングの前に動きのイメージをします。

プログラムに直すと

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(条件式){}

条件式に合うあいだは、{}内の命令を繰り返します。

今回は、応募者の番目が応募者数より小さいあいだは を条件式にしています。