Ruby FizzBuzz
6039 단어 Ruby
FizBuzz는 매우 유명한 프로그래밍 문제입니다.
나도 루비가 공부를 시작했을 때 이 문제에 부딪혔다.
이것은 프로그래밍 초보자들이 특히 기억하고 싶은 문제다.
FizBuzz 질문
1~100의 숫자를 터미널에 출력해 주세요.단,'3의 배수'는 숫자 파이즈 대신 문자열로,'5의 배수'는 버즈로, 쌍방의 배수인'15의 배수'는 파이즈 버즈를 출력하라.
1부터 100까지의 숫자 출력
1~100까지 출력하지만 다음 순서대로puts로 출력하면 효율이 너무 떨어진다.
좋지 않은 예
saple.rbdef fizz_buzz
puts 1
puts 2
puts 3
(中略)
puts 99
puts 100
일정한 처리를 반복할 때while문을 사용합니다.
while 문
while문은 반복적으로 처리하는 문법 중의 하나이다.
sample.rb while 条件式 do
# 処理
end
조건식 반복 여부를 결정합니다.조건식은 런타임 반복 처리입니다.
1~100까지 출력한다는 것은 숫자가 100 이상이 되기 전에 반복적으로 처리한다는 뜻으로 조건식은 다음과 같다.
sample.rbnum = 1
while (num <=100) do
end
1부터 시작하기 때문에num=1을 정의합니다.while문에 쓰면num을 분별할 수 없으며 오류가 발생할 수 있으니 주의하십시오.
다음은while문 내용으로 처리하는 것을 기술합니다."3의 배수"는 질문과 같이 ""5의 배수""는 Buzz이고 2의 배수가 ""15의 배수""일 때는 Fiz Buzz와 출력입니다."
if문
'3의 배수일 때','5의 배수일 때'등 조건에 따라 처리할 때if문을 사용한다.
조건이 많을 때 elsif를 사용합니다.
서법
sample.rb if 条件式1
# 条件式1が真(true)のときに実行する処理
elsif 条件式2
# 条件式1が偽(false)のとき、かつ
# 条件式2が真(true)のときに実行する処理
elsif 条件式3
# 条件式1が偽(false)のとき、更に
# 条件式2が偽(false)のとき、かつ
# 条件式3が真(true)のときに実行する処理
else
# 条件式1と条件式2がどちらとも偽(false)のときに実行する処理
end
이번 문제에 적용되는 것은 이렇다.
sample.rb def fizz_buzz
num = 1
while (num <= 100) do
#15の倍数の時(もしnumを15で割った時の余りが0なら)
if (num % 15) == 0
puts "FizzBuzz"
#3の倍数の時(numを3で割った時の余りが0なら)
elsif (num % 3) == 0
puts "Fizz"
#5の倍数の時(numを5で割った時の余りが0なら)
elsif (num % 5) == 0
puts "Buzz"
#それ以外の時
else
puts num
end
end
end
마지막으로 매번 처리가 끝난 후에는num을 하나씩 늘려야 합니다.늘지 않으면 넘은 1을 유지합니다.
영원히 하나만 출력.
완료 코드
sample.rb def fizz_buzz
num = 1
while (num <= 100) do
if (num % 15) == 0
puts "FizzBuzz"
elsif (num % 3) == 0
puts "Fizz"
elsif (num % 5) == 0
puts "Buzz"
else
puts num
end
# numを1ずつ増やす num +=1(自己代入演算子)でもOK
num = num + 1
end
end
#メソッドの実行
fizz_buzz
Reference
이 문제에 관하여(Ruby FizzBuzz), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/katou02/items/a90ba5782f4d6171182b
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
def fizz_buzz
puts 1
puts 2
puts 3
(中略)
puts 99
puts 100
while 条件式 do
# 処理
end
num = 1
while (num <=100) do
end
if 条件式1
# 条件式1が真(true)のときに実行する処理
elsif 条件式2
# 条件式1が偽(false)のとき、かつ
# 条件式2が真(true)のときに実行する処理
elsif 条件式3
# 条件式1が偽(false)のとき、更に
# 条件式2が偽(false)のとき、かつ
# 条件式3が真(true)のときに実行する処理
else
# 条件式1と条件式2がどちらとも偽(false)のときに実行する処理
end
def fizz_buzz
num = 1
while (num <= 100) do
#15の倍数の時(もしnumを15で割った時の余りが0なら)
if (num % 15) == 0
puts "FizzBuzz"
#3の倍数の時(numを3で割った時の余りが0なら)
elsif (num % 3) == 0
puts "Fizz"
#5の倍数の時(numを5で割った時の余りが0なら)
elsif (num % 5) == 0
puts "Buzz"
#それ以外の時
else
puts num
end
end
end
def fizz_buzz
num = 1
while (num <= 100) do
if (num % 15) == 0
puts "FizzBuzz"
elsif (num % 3) == 0
puts "Fizz"
elsif (num % 5) == 0
puts "Buzz"
else
puts num
end
# numを1ずつ増やす num +=1(自己代入演算子)でもOK
num = num + 1
end
end
#メソッドの実行
fizz_buzz
Reference
이 문제에 관하여(Ruby FizzBuzz), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/katou02/items/a90ba5782f4d6171182b텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)