(Ruby)
def f(n, ary)
s = 0
n.times{|i|
s += ary.inject(:+)
ary = (1..n - 1 - i).map{|j| ary[j - 1] + ary[j]}
}
s
end
def A(n)
f_ary = (1..n - 1).map{|i| [i]}
cnt = 1
s = 1
while f_ary.size > 0
b_ary = []
f_ary.each{|i|
(1..i[0] - 1).each{|j|
a = [j]
(0..s - 1).each{|k|
num = i[k] - a[k]
if num > 0
a << num
else
break
end
}
if a.size == s + 1
sum = f(s + 1, a)
if sum < n
b_ary << a
elsif sum == n
cnt += 1
end
end
}
}
f_ary = b_ary
s += 1
end
cnt
end
def A337785(n)
(1..n).map{|i| A(i)}
end
p A337785(50)
proposed
editing
editing
proposed
editing
proposed
Number of addition triangles whose sum is n (version 1).
Reversing the base counts as a different triangle.