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

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

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

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

Q&A

解決済

3回答

1316閲覧

*で右側下が直角の二等辺三角形を作れたのですが

退会済みユーザー

退会済みユーザー

総合スコア0

Ruby

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

0グッド

1クリップ

投稿2020/03/11 06:59

Ruby

1puts "左下直角の二等辺三角形を表示します" 2print "段数は" 3n = gets.to_i 4i = 1 5while i <= n 6 j = 1 7 while j <= n - i 8 print " " 9 j += 1 10 end 11 j = 1 12 while j <= i 13 print "*" 14 j += 1 15 end 16 puts 17 i += 1 18end 19#(1..n).each { |i| puts '*' * i }

コンソール出力結果(Markdownがわからないためhtmlで囲ってます)

html

1 * 2 ** 3 *** 4 **** 5 *****

出来たのですが(結構うれしい)
なんかコードが長いなと思いました

短くしたコードがあれば見たいなと思い質問というより投稿しましたので、他に困ってる方がいるのであればそちらを優先に、、、

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

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

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

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

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

guest

回答3

0

ベストアンサー

String#rjustが便利ですかねぇ。

rb

1(1..n).each { |x| puts ('*' * x).rjust(n) }

投稿2020/03/11 07:15

Mugheart

総合スコア2344

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

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

退会済みユーザー

退会済みユーザー

2020/03/12 01:40

またもや頭爆発中なので必要になった時にトライさせていただきます! ありがとうございます<(_ _)>
guest

0

ruby

1puts "右下直角の二等辺三角形を表示します" 2print "段数は" 3n = gets.to_i 41.upto(n) do |i| 5 print " " * (n-i) 6 puts "*" * i 7end

投稿2020/03/11 07:04

編集2020/03/11 07:05
asm

総合スコア15147

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

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

退会済みユーザー

退会済みユーザー

2020/03/11 07:09

ありがとうございます upto downto最強やなと今思っています!
asm

2020/03/11 07:21

Rubyの場合、繰り返しはなるべく 配列やハッシュが絡むならばEnumerableの各メソッド https://docs.ruby-lang.org/ja/latest/class/Enumerable.html Enumerableが用いる事ができない場合は Integer#times,Integer#upto/downto,Numeric#stepを検討し、 whileは使わない方が読みやすくなる事が多いです。 一応、パフォーマンス的にはwhileに分があるのですが 些細な差ですしRuby以外の言語を選択した方がパフォーマンスはいいですね
退会済みユーザー

退会済みユーザー

2020/03/12 01:42

ありがとうございます<(_ _)> なるたけ公式サイト読むようにします、、、(難しそうですが、、、) ”配列やハッシュが絡むならばEnumerableの各メソッド https://docs.ruby-lang.org/ja/latest/class/Enumerable.html Enumerableが用いる事ができない場合は Integer#times,Integer#upto/downto,Numeric#stepを検討し、 whileは使わない方が読みやすくなる事が多いです。” 丁寧にありがたいです これが身に染みてわかる日が必ず来ると思うのでそれを楽しみに学習していきます<(_ _)>
guest

0

ruby無学者ですが、気になったので自分なりに作成してみました。
KotaTakashima様のコードがfor文になっただけのような気がしますが、
可読性として、ひとつの参考になれば幸いです

ruby

1puts "右下直角の二等辺三角形を表示します" 2print "段数は\n" 3max = 10 4for num in 1..max do 5 (max - num).times do 6 print(" ") 7 end 8 num.times do 9 print("*") 10 end 11 print("\n") 12end 13print("End")

投稿2020/03/11 08:02

funmas

総合スコア31

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

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

退会済みユーザー

退会済みユーザー

2020/03/12 01:39

ありがとうございます<(_ _)> Rubyでのfor文に苦手意識をもってしまいwhileで書くことが増えてしまいましたが、funmasさんのコードを参考にしてfor文にもトライしていきます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問