如何在Ruby中制作以下模式?

时间:2019-04-24 14:09:38

标签: ruby

A

B B

C C C

D D D D

E E E E E

我不知道如何打印字母

3 个答案:

答案 0 :(得分:5)

您可以执行以下操作来解决此问题:

('A'..'F').each.with_index(1) { |letter,index| puts "#{letter} "*index }

替代方法包括使range可变:

lower_limit = 'A'   # could be read in rather than wired
upper_limit = 'F'   # ditto
(lower_limit..upper_limit).each.with_index(1) { |letter,index| puts "#{letter} "*index }

或使用带有join的数组来获取空格而不会引入尾随空白:

(lower_limit..upper_limit).each.with_index(1) { |letter,index| puts Array.new(index) { letter }.join(' ') }

答案 1 :(得分:0)

您可以执行以下操作-

(1..5).each do |index|
  (1..index).each do
    print (64+index).chr
  end
  puts "\n"
end

它的作用-

  1. (1..5)-运行索引从1到5的循环。
  2. (1..index)-运行另一个循环,因此对于上述每个循环,它从1开始一直运行到索引,该索引将由(1..5).each循环进行控制。
  3. (65).chr-> A,(66).chr-> B等。
  4. 输入“ \ n”以添加新行

这将为您提供输出-

A

BB

CCC

DDDD

EEEEE

如果要在打印内容中添加其他内容,可以执行-

print "#{(64+index).chr} - random text"

#{}构造将使您可以在字符串块中编写ruby可解释的代码。

注意:#{}仅在使用双引号:)时有效

答案 2 :(得分:-4)

它不用于RUBY也不用于任何其他语言,它只是一种流程:

打印像这样的字母:

for (ch = 'a'; ch <= 'z'; ch++)
{
    System.out.println(ch);
}
  1. 现在初始化计数器i = 0
  2. 在每个循环中增加i ++。
  3. i次打印当前外循环电流char