Ruby数组和循环

时间:2019-01-26 01:01:25

标签: ruby

我已经能够提出一个完全为实心的星形三角形,但是我很难创建一个“空心的”和一个数字,两者都会以用户输入的数字递增。有帮助吗?

5 个答案:

答案 0 :(得分:1)

1st。重复行

第二。仅在行[0,i]的边界内放置“ *”,并在其中填充“”:

3rd:第一种和最后一种(n)种情况例外

n = 8

puts '*'

(n-2).times do |i|
  puts '*' + ' ' * (i) + '*'
end

puts '*' * n if n > 1

答案 1 :(得分:1)

这是我的解决方案:

private static final Map<String, Handler> nameToHandler = new HashMap<>();

static {
    nameToHandler.put("Foo", new FooHandler());
    nameToHandler.put("Bar", new BarHandler());
}

答案 2 :(得分:1)

def bt(n)
  1.upto(n) do |i|
    puts case i
    when 1
      '*'
    when n
      '*'*n
    else
      "*#{' '*(i-2)}*"
    end
  end
end

bt 8
*
**
* *
*  *
*   *
*    *
*     *
********

ROW = [*1..9, *'A'..'Z'].join
  #=> "123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ" 

def lt(n)
  1.upto(n) { |i| puts ROW[0,i] }
end

lt 8
1
12
123
1234
12345
123456
1234567
12345678

lt 22
1
12
123
1234
12345
123456
1234567
12345678
123456789
123456789A
123456789AB
123456789ABC
123456789ABCD
123456789ABCDE
123456789ABCDEF
123456789ABCDEFG
123456789ABCDEFGH
123456789ABCDEFGHI
123456789ABCDEFGHIJ
123456789ABCDEFGHIJK
123456789ABCDEFGHIJKL
123456789ABCDEFGHIJKLM

ROW = ''*10
lt 6






答案 3 :(得分:0)

您可以为第二个三角形创建一个具有两个循环的简单方法:

def print_numbers_right_triangle(height)
  1.upto(height) do |row|
    1.upto(row) do |i|
      print i
    end
    puts
  end
end

print "Plese enter the height of the triangle:"
print_numbers_right_triangle(gets.strip.to_i)

用法示例:

Plese enter the height of the triangle: 8
1
12
123
1234
12345
123456
1234567
12345678

答案 4 :(得分:0)

其他选项,只是为了好玩。

跟随

n, cat, hyp = 4, "", ""

n.times do |n|
  a = Array.new(n+1){' '}
  a[0], a[-1] = cat, hyp
  puts a.join
end

它返回:

# 
# 
#  
#   


已填充

n = 10
r = [*0..9, *'a'..'z']

n.times do |n|
  puts r[0..n].join
end

返回

# 0
# 01
# 012
# 0123

如果对数组r.shuffle[0..n].join进行混洗,则会得到随机输出:

# t
# 26
# ce0
# zqiw


随机表情符号:

some_emotics = (0..9).each_with_object([]) { |n, o| o << "1F96#{n}".to_i(16) }.pack 'U*'
n.times do |n|
  puts some_emotics.split("").shuffle[0..n].join
end

获得:

# 
# 
# 
#