ruby 实现杨辉三角
递归思想?
每一行我看做是一个数组,传入的参数是上一个数组,当然每一个结果数组用temp缓存一下,?
每传入一个数组,那么打印一次,也就是每行的结果了
发布时间: 2013-01-28 11:49:56 作者: rapoo
ruby 实现杨辉三角
递归思想?
每一行我看做是一个数组,传入的参数是上一个数组,当然每一个结果数组用temp缓存一下,?
每传入一个数组,那么打印一次,也就是每行的结果了
01
class
?Sanjiao
02
????????????????
def
?initialize(row)
03
????????????????????????
@row
?= row
04
????????????????
end
05
????????????????
def
?sanjiaoxing(temp)
06
????????????????
number = temp.length
07
???????????????
temp.
each
?do
?|x|
08
????????????????????????????????????
print x.to_s+
' '
09
?????????????????????????????
end
10
????????????
array =?
Array
.
new
(number.to_i+
1
)
11
?????????????????????????????
0
.upto(number.to_i)?
do
?|x|
12
?????????????????????
if
?x ==?
0
?????????????????#? 两端的就不用求了,
13
?????????????????????????????????????????????????????????
array[
0
] =
1
14
???????????????????????????????????????
elsif
??x == number.to_i
15
?????????????????????????????
array[number.to_i] =?
1
16
?????????????????????
else
17
?????????????????????????????????????????????
array[x]=temp[x-
1
].to_i+temp[x].to_i???
#根据上一个数组的结果得下一数组的值
18
???????????????????????????????????
end
19
?????????????????????????????
end
20
????????????????????????????????
temp = array???
#hauncunyixia
21
?????????????????????????????
puts?
" "
22
???????????????
if
?number.to_i <?
@row
23
?????????????????????????????????
sanjiaoxing(temp)
24
???????????????
end
25
????????????????
end
26
end
27
?28
temp =?
Array
.
new
(
1
)
29
temp[
0
] =
1
30
p = Sanjiao.
new
(
20
)
31
p.sanjiaoxing(temp)