黒板の文字を何回も2で割りたい!ABC081B - Shift only
今日も朝の体操の様子をお届けします。
作成した回答がこちら
# 整数の入力
n = gets.to_i
# スペース区切りの整数の入力
ary=gets.chomp.split(" ").map(&:to_i);
# 変数を宣言
i = 0
# 整数を配列に入力
while
if ary[i % n] % 2 == 1
break
end
ary[i % n] /= 2
i += 1
end
# 出力
print("#{i / n}\n")
WAになる理由がわかりません。わかる方、教えてもらえますか?
ーーーーーーーーーー以下、追記ーーーーーーーーーーー
Twitterにてご指摘いただき解決しました!
本当に素晴らしいお方に助けていただき感謝しています!
# 整数を配列に入力
while
のところを
while true
に変更して、提出先も確認して
ACになりました!
ありがとうございます!
ーーーーーーーーーー以上、追記ーーーーーーーーーーー
配列の要素を一斉に割っていて処理が速い回答例がこちら
- # frozen_string_literal: true
- enable_count = 0
- count = gets.chomp.to_i
- arr = gets.chomp.split(' ').map(&:to_i)
- while true do
- break if arr.map{ |n| n % 2 }.include?(1)
- enable_count += 1
- arr = arr.map{ |n| n / 2 }
- end
- puts enable_count