Гольфскрипт, 14 символов
R
Принимает входные данные (вектор плюс количество строк) поверх стека и заменяет их результатом. Пример (также онлайн):
[array,R]
||answer||
Р, 45
a=eval$_;a.pop.times{a<<j=0;p a.map!{|i|(v=j)+j=i}}
Пример использования:
fun <- function(x,r){for(i in 1:r)x=c(x,0)+c(0,x);x}
fun(c(3, 1, 2), 1)
[1] 3 4 3 2
fun(c(3, 1, 2), 2)
[1] 3 7 7 5 2
fun(c(3, 1, 2), 5)
[1] 3 16 37 50 45 28 11 2
||answer||
Руби, 51 год
function(x,r){for(i in 1:r)x=c(x,0)+c(0,x);x}
Запустить из командной строки с помощью [3 1 2] 3 {[0\{.@+\}/]}* # -> [3 10 14 12 7 2]
as input. It shows each increment of {[0\{.@+\}/]}*
по пути. Последняя строка – это решение.
Например, если массив {2+/0,⍵,0}⍣⎕⍨⎕
and 1{{2+/0,⍵,0}⍣⍺⍨⍵}3 1 2
3 4 3 2
2{{2+/0,⍵,0}⍣⍺⍨⍵}3 1 2
3 7 7 5 2
3{{2+/0,⍵,0}⍣⍺⍨⍵}3 1 2
3 10 14 12 7 2
:
{{2+/0,⍵,0}⍣⍺⍨⍵}
Для того же количества символов, но другого соглашения о вызовах:
?(3;1;2) <== Array of numbers
?1 <== Row number
3432
||answer||
iX2Web, 94 года
i`N,Rd`N11
Вряд ли он превзойдет мое решение Golf-Basic. Компенсирует это красивым графическим интерфейсом и выводом. Только Windows.