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

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

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

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

Q&A

1回答

1011閲覧

文字列を結合した後、指定範囲を表示したい

TomohiroMatsuo

総合スコア14

Ruby

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

0グッド

0クリップ

投稿2017/10/19 16:38

###困っていること
この質問の続きです  

とあるプログラミング問題です。
文字列を結合し続けて、最後に指定された範囲の文字列を表示する課題なのですが、以下のソースコードのように書くと文字列が爆発的に増えてしまい、処理が完了できません。どのようにロジックを書けば良いでしょうか。  

###該当のソースコード

Ruby

1level = 40 2start = 45 3stop = 70 4 5str = "ABC" 6 7for i in 1..level do 8 str = "A" +str+ "B" + str + "C" 9end 10 11puts str.slice(start..stop)

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

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

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

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

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

guest

回答1

0

問題の内容が不明なので求める出力がわかりませんが、下記のような形ではどうでしょうか。
結局のところは、先頭に結合する"A"と途中までのstrの結合結果があればよいので、strを適当なところで打ち切りつつ計算すればよいのではないかと考えました。

ruby

1level = 40 2start = 45 3stop = 70 4 5str = "ABC" 6 7for i in 1..level do 8 str = "A" + str + "B" + str + "C" 9 str = str[0, start + stop] 10end 11 12puts str 13puts ' ' * 45 + str.slice(start..stop) 14 15#AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABCBABCCBAABCBABCCCBAAABCBABCCBAABCBABCCCCBAAAABCBABCCBAABCBABCCCBAAABCBABC 16# BCCBAABCBABCCCBAAABCBABCCB 17

投稿2017/10/19 21:23

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問