私はこの問題で立ち往生しています。Rubyで解決してみました。
私の答えは
4.times{|i| puts "#{i}"} && 5.upon(7){|i| puts "#{i}}
しかし、それが正しいかどうかはわかりません。
私はこの問題で立ち往生しています。Rubyで解決してみました。
私の答えは
4.times{|i| puts "#{i}"} && 5.upon(7){|i| puts "#{i}}
しかし、それが正しいかどうかはわかりません。
これはあなたのために働くはずです
result = (0..3).to_a.product((5..7).to_a)
puts result.inspect
#=> [[0, 5], [0, 6], [0, 7], [1, 5], [1, 6], [1, 7], [2, 5], [2, 6], [2, 7], [3, 5], [3, 6], [3, 7]]
それが正しいかどうかわからない
通常、このような場合、コードを実行しようとします。そうすれば、引用符が欠落していること、Fixnum#upon
(実行upto
したはずの) のようなメソッドがないこと、コードが一度に 1 桁しか出力せず、ペアを出力しないことに (段階的に) 気付くはずです。 2 番目のループが実行されないこと ( がtimes
返されnil
、評価されないnil && x
ため短絡されるため)。x
あなたの質問に関しては、表示ではなく数字のペアのシーケンスを要求するため、puts
必要ありません。また、ペアが必要なため、2 つのループを次々にネストするのではなく、ネストする必要があります。
(0..3).flat_map { |x| (4..7).map { |y| [x, y] } }
それを書くための1つの簡単な方法になります。
編集:flat_map
よりもクールですmap.flatten
。それでも、macek の回答はより具体的な +1 です。