def splitnum(n,k,arr)
if n==0 then
puts arr.to_s
end
for i in k..2
arr.push(i)
if n-i>= 0 then
splitnum(n-i,k,arr)
end
arr.pop
end
end
arr=Array.new()
splitnum(4,1,arr)
if n==0 then
puts arr.to_s
end
for i in k..2
arr.push(i)
if n-i>= 0 then
splitnum(n-i,k,arr)
end
arr.pop
end
end
arr=Array.new()
splitnum(4,1,arr)
仿照别人的写,感觉很不明白程序的逻辑。