プログラミング ruby java 変換
Q&A
Closed
解決したいこと
rubyで書いたこのコードを
javaに翻訳したいのですがどのようにかけばよいでしょう?
このコードは例えば
3:fizz 5:buzz 3
のような文字列を入力したとき
文字列の最後の数字(今回であれば3)で割り切れることが出来れば
割りきれたほうの数字の横の文字
fizz
を出力します。
したがって
3:fizz 5:buzz 5であれば buzzを出力し
5:fizz 7:buzz 10であれば fizzを出力します。
3:fizz 5:buzz 15のようにどちらでも割り切れる場合は数字の小さい順に fizzbuzz
と出力します。
なので 5:fizz 3:buzz 15であれば buzzfizz
2:fizz 6:buzz 3:kuzzであれば fizzkuzzbuzz
となります。
3:fizz 5:buzz 1 のようにどちらでも割り切れないものは最後の数字(今回であれば 1 )
を出力します。
該当するソースコード
def main()
input_text = gets
split_text = input_text.split(' ')
target_num = split_text.last.to_i
mapping_str = split_text[0..split_text.length - 2]
mapping_array = []
mapping_str.each do |map|
tmp = map.split(':')
hash = {
num: tmp[0].to_i,
str: tmp[1]
}
mapping_array.push(hash)
end
sorted_mapping_array = mapping_array.sort{ |a, b| a[:num] <=> b[:num] }
output = ''
sorted_mapping_array.each do |map|
if target_num % map[:num] == 0
output += map[:str]
end
end
if output == ''
output = target_num
end
puts output
end
main()
0 likes