[Ruby]dorill69

プログラミング

問題

警察がネズミ取りをしています。
速度が60以下の場合、出力は0になります。
速度が61以上80以下の場合、出力は1になります。
速度が81以上の場合、出力は2になります。
出力を計算するためのコードを作成し、int値としてエンコードします。
0=チケットなし、1 =小チケット、2 =大チケット。
と出力するメソッドを作りましょう。
アタナの誕生日の日だけ速度制限が5倍大きくなります。
速度は小数点以下も有効ですが、判定の際は小数点一桁で四捨五入して整数にしてください。

自分の回答

def caught_speeding(speed, is_birthday)
  if is_birthday == "True"
   bonus = 5
  else
   bonus = 1
  end

  if speed <= 60 * bonus
    puts 0
  elsif 60 * bonus < speed   && speed  <= 80 * bonus
    puts 1
  else
    puts 2
  end
end

問題文の通りif文を作れば良いですね。気をつけるところは、誕生日かどうかで分岐条件が変わるところですね。


コードではbonusと言う変数を用意しています。if文の条件のところにbonusをかけてます。誕生日であれば、bonus=5 となり、速度制限が5倍大きくなります。そうでなければbonus=1なので、変化はありません。

(なんか、この問題、問題と答えがあっていない気がします。)

タイトルとURLをコピーしました