2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

[Ruby基礎学習] パターンの表示③

Posted at

はじめに

章末問題まできた。章末問題1つ目。

問題

以下を表示する。

########
 ######
  ####
   ##

解答

#が下に行くごとに2個ずつ減っていって、
逆に空白は2個ずつ増えている。

最初はとりあえず無理やり表示できるようにした。

hash_count = 8
space_count = 0
4.times do
   print " " * (space_count / 2)
   print "#" * hash_count
   print " " * (space_count / 2)
   puts ""
 
   hash_count -= 2
   space_count += 2
 end

ちょっとすっきりさせた。

sharp = 8
space = 0
4.times do |i|
	space_text = " " * (space / 2)
	puts space_text + ("#" * sharp) + space_text
	sharp -= 2
	space += 2
end

もっとシンプルにしたいなぁと考えてる時に、
今以下のように表示させようとしているけど、
右端に空白をひっつける必要はないのでは?と思った。

########
□######□
□□####□□
□□□##□□□

そうやって色々考えたらこうなった。
シンプルになったなぁ。

[*1..4].reverse.each.with_index{ |c, i| puts (" " * i) + ("#" * c * 2) }

問題の出典

  • プログラマの考え方がおもしろいほど身につく本 問題解決能力を鍛えよう!
2
2
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?