FizzBuzzの問題を外部入力した数値から数えるアプリケーションを作ってみた


通常FizzBuzzの問題は、1~100までを数えるものが多いみたいですが、今回はgets.to_iを使用し、入力した数を(含めて)から30数えるアプリケーションを作ってみる

目的

 ・学習のため
 ・入力した数値からFizzBuzzできたら面白そうだと思ったから

下記条件を満たすように作る

 ・外部入力させる
 ・入力させた数値を含めて、そこから30数える
 ・3の倍数の場合はFizzと表示させる
 ・5の倍数の場合はBuzzと表示させる
 ・15の倍数の場合はFizzBuzzと表示させる
 ・「数値を入力してください」と表示させた後に、入力させる
 ・数値を入力させた後は、改行させるか、文字をいれる(ターミナル上で見栄え良くするため)

擬似コードを書く


puts "数え始める開始の数値を入力してください"
x = 数字を入力させる
puts "下記に入力した数値を含めて30数えます"
y = 30数えるため、外部入力させた数値に30を足す

  xから(30数える=y)each do|i|
※ここから先はいつものFizzBuzzと一緒
if ○○なら
 puts ○○と表示する

elsif
   ○○なら
 puts ○○と表示する

elsif
   ○○なら 
 puts ○○と表示する
else
  それ以外なら
 puts ○○と表示する

できたアプリケーションがこちら


puts "数え始める開始の数値を入力してください"

x = gets.to_i
puts "下記に入力した数値を含めて30数えます"
y = x + 30

  (x..y).each do|i|

  if i%15==0
      puts "FizzBuzz"
  elsif
      i%3==0
      puts "Fizz"
  elsif
      i%5==0
      puts "Buzz"
  else
      puts i
  end
end

動作確認しよう。今回は、100から数えてみる。

数え始める開始の数値を入力してください
100
下記に入力した数値を含めて30数えます
Buzz
101
Fizz
103
104
FizzBuzz
106
107
Fizz
109
Buzz
Fizz
112
113
Fizz
Buzz
116
Fizz
118
119
FizzBuzz
121
122
Fizz
124
Buzz
Fizz
127
128
Fizz
Buzz

あっさり出来た。
感覚的にできるもんすね・・・・・。

たぶん間違っていないかと思われる。
他に良い方法ありそうでしたら、ご指摘いただけますと幸いです。

参考:FizzBuzz基本問題
https://qiita.com/pontarou194/items/6cf17868a8346613fddf