質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.37%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Q&A

解決済

9回答

2414閲覧

Ruby 1 2 3 4 5 2 3 4 5という出力処理を作りたい

maimaisuki

総合スコア18

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

0グッド

1クリップ

投稿2014/09/09 09:44

Ruby 1 2 3 4 5 2 3 4 5という出力処理を作りたいのですが、なにか良い処理ができるコードはありますか?

良いコードが思い浮かばないので、どなたか教えてください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答9

0

ベストアンサー

lang

1puts (1..2).map{|x|(x..5).to_a}.join(" ")

投稿2014/09/10 10:20

otn

総合スコア85762

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

1 2 3 4 5 2 3 4 5 という数列の後ろに何が続くのか判断つきません。
このコードが一番よいと思います。

lang

1puts "Ruby 1 2 3 4 5 2 3 4 5"

投稿2014/09/10 12:35

hello-world

総合スコア1342

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

lang

1p (['Ruby']+(1..2).map{|s|(s..5).map{|x|x}}).join ' '

inject を使った回答があったので、それをまねして map を使った方法を作ってみました。
すこしだけ短くなったと思います。
いろいろな知識をつかうと、もっと短い回答も作成できそうですね。

投稿2014/09/13 05:40

katoy

総合スコア22324

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

lang

1p 'Ruby '<<[*1..2].inject([]){|x, n|x<<[*n..5];x}.join(' ')

投稿2014/09/12 06:44

k.tada

総合スコア1679

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

こんな感じですかね。

callccは組み込み関数です。

lang

1require 'continuation' if RUBY_VERSION >= '1.9' 21.upto(5) do |i| 3if i == 2 4$c = callcc{|continuation| 5continuation 6} 7end 8print i, ' ' 9end 10$c.call(nil) if $c

他にもまだまだありますのでご自身で考えてみてください。

投稿2014/09/10 02:30

miku

総合スコア154

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

これが求めている回答とはおもいませんが、可能性の一つとして。

  1. テキストファイル data.txt をつくり、中身を "Ruby 1 2 3 4 5 2 3 4 5" とする。
  2. 次の data.rb を作成し、実行する。

lang

1puts File.open('data.txt').read

投稿2014/09/11 16:12

katoy

総合スコア22324

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

何か配列を先頭から削除して・・・ということをしたければ、shiftを使うのもありでしょう。

lang

1 2print 'Ruby' 3ar=(1..5).to_a 4until ar.empty? 5 print " " + ar.join(" ") 6 ar.shift 7end 8

Ruby 1 2 3 4 5 2 3 4 5 3 4 5 4 5 5
と出力されると思います

投稿2014/09/11 06:17

skz

総合スコア145

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

私の考えた例も挙げておきます。

lang

1print 'Ruby ' 2(1..2).each {|cnt| 3 (cnt..5).each {|num| 4 print num, ' ' 5 } 6} 7puts

投稿2014/09/10 05:54

yohshiy

総合スコア863

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

Ruby

1p "Ruby 1 #{([*2..5]*2).join(' ')}"

私も挑戦してみました。

投稿2017/08/03 13:58

編集2017/08/03 13:59
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.37%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問