我很难弄清楚如何在红宝石上用一行来循环数字。
x = 0
while x <= 9
puts x
x +=1
end
这会给你
0
1
2
3
4
5
6
7
8
9
每个都在不同的线上。
但我想要的是把这个放在一条线上
01234567891011121314151617181920
也不局限于单行上的0到9,更像0到无穷大。
其目的是建立一个任何大小的三角形,遵循这个模式。
1
12
123
1234
12345
123456
每一条都在不同的线路上。这里的格式不允许我放进不同的行。
真的很想解决这个问题。它弄痛了我的头。
发布于 2016-10-09 06:26:39
试试这个:
(1..9).each { |n| print n }
puts
发布于 2016-10-09 18:13:24
你说你想要“形成一个任何大小的三角形,遵循这个模式”,所以你不应该假设应该如何去做。有两种方法可以做到这一点。
#1
def print_triangle(n)
(1..n).each.with_object('') { |i,s| puts s << i.to_s }
end
print_triangle(9)
1
12
123
1234
12345
123456
1234567
12345678
123456789
#2
def print_triangle(n)
s = (1..n).to_a.join
(1..n).each { |i| puts s[0,i] }
end
print_triangle(9)
1
12
123
1234
12345
123456
1234567
12345678
123456789
发布于 2016-10-09 15:24:18
这个解决方案怎么样:
last_num = 9
str = (1..last_num).to_a.join # create string 123456789
0.upto(last_num-1){ |i| puts str[0..i] } # print line by line
https://stackoverflow.com/questions/39940619
复制相似问题