Skip to main content
thanks to G B
Source Link
manatwork
  • 20.9k
  • 5
  • 53
  • 82

Ruby: 51 4949 46 characters

(45 characters code + 1 character command line option)

p=[];$_.to_i.times{n=0;p p.map!{|i|(v=n)+n=i|i|n+n=i}<<1} 

Thanks to:

  • jsvnm for suggesting an alternative for the value switching (2 characters)
  • G B for spotting out a variable unused after previous improvement (4 characters)

Sample run:

bash-4.2$4$ ruby -ne 'p=[];$_.to_i.times{n=0;p p.map!{|i|(v=n)+n=i|i|n+n=i}<<1}' <<< 1 [1] bash-4.2$4$ ruby -ne 'p=[];$_.to_i.times{n=0;p p.map!{|i|(v=n)+n=i|i|n+n=i}<<1}' <<< 9 [1] [1, 1] [1, 2, 1] [1, 3, 3, 1] [1, 4, 6, 4, 1] [1, 5, 10, 10, 5, 1] [1, 6, 15, 20, 15, 6, 1] [1, 7, 21, 35, 35, 21, 7, 1] [1, 8, 28, 56, 70, 56, 28, 8, 1] 

Try it online!

Ruby: 51 49 characters

p=[];$_.to_i.times{n=0;p p.map!{|i|(v=n)+n=i}<<1} 

Sample run:

bash-4.2$ ruby -ne 'p=[];$_.to_i.times{n=0;p p.map!{|i|(v=n)+n=i}<<1}' <<< 1 [1] bash-4.2$ ruby -ne 'p=[];$_.to_i.times{n=0;p p.map!{|i|(v=n)+n=i}<<1}' <<< 9 [1] [1, 1] [1, 2, 1] [1, 3, 3, 1] [1, 4, 6, 4, 1] [1, 5, 10, 10, 5, 1] [1, 6, 15, 20, 15, 6, 1] [1, 7, 21, 35, 35, 21, 7, 1] [1, 8, 28, 56, 70, 56, 28, 8, 1] 

Ruby: 51 49 46 characters

(45 characters code + 1 character command line option)

p=[];$_.to_i.times{n=0;p p.map!{|i|n+n=i}<<1} 

Thanks to:

  • jsvnm for suggesting an alternative for the value switching (2 characters)
  • G B for spotting out a variable unused after previous improvement (4 characters)

Sample run:

bash-4.4$ ruby -ne 'p=[];$_.to_i.times{n=0;p p.map!{|i|n+n=i}<<1}' <<< 1 [1] bash-4.4$ ruby -ne 'p=[];$_.to_i.times{n=0;p p.map!{|i|n+n=i}<<1}' <<< 9 [1] [1, 1] [1, 2, 1] [1, 3, 3, 1] [1, 4, 6, 4, 1] [1, 5, 10, 10, 5, 1] [1, 6, 15, 20, 15, 6, 1] [1, 7, 21, 35, 35, 21, 7, 1] [1, 8, 28, 56, 70, 56, 28, 8, 1] 

Try it online!

shortened as suggested by jsvnm
Source Link
manatwork
  • 20.9k
  • 5
  • 53
  • 82

Ruby: 5151 49 characters

p=[];$_.to_i.times{n=0;p p.map!{|i|v=n;n=i;v+i|i|(v=n)+n=i}<<1} 

Sample run:

bash-4.2$ ruby -ne 'p=[];$_.to_i.times{n=0;p p.map!{|i|v=n+i;n=i;v|i|(v=n)+n=i}<<1}' <<< 1 [1] bash-4.2$ ruby -ne 'p=[];$_.to_i.times{n=0;p p.map!{|i|v=n+i;n=i;v|i|(v=n)+n=i}<<1}' <<< 9 [1] [1, 1] [1, 2, 1] [1, 3, 3, 1] [1, 4, 6, 4, 1] [1, 5, 10, 10, 5, 1] [1, 6, 15, 20, 15, 6, 1] [1, 7, 21, 35, 35, 21, 7, 1] [1, 8, 28, 56, 70, 56, 28, 8, 1] 

Ruby: 51 characters

p=[];$_.to_i.times{n=0;p p.map!{|i|v=n;n=i;v+i}<<1} 

Sample run:

bash-4.2$ ruby -ne 'p=[];$_.to_i.times{n=0;p p.map!{|i|v=n+i;n=i;v}<<1}' <<< 1 [1] bash-4.2$ ruby -ne 'p=[];$_.to_i.times{n=0;p p.map!{|i|v=n+i;n=i;v}<<1}' <<< 9 [1] [1, 1] [1, 2, 1] [1, 3, 3, 1] [1, 4, 6, 4, 1] [1, 5, 10, 10, 5, 1] [1, 6, 15, 20, 15, 6, 1] [1, 7, 21, 35, 35, 21, 7, 1] [1, 8, 28, 56, 70, 56, 28, 8, 1] 

Ruby: 51 49 characters

p=[];$_.to_i.times{n=0;p p.map!{|i|(v=n)+n=i}<<1} 

Sample run:

bash-4.2$ ruby -ne 'p=[];$_.to_i.times{n=0;p p.map!{|i|(v=n)+n=i}<<1}' <<< 1 [1] bash-4.2$ ruby -ne 'p=[];$_.to_i.times{n=0;p p.map!{|i|(v=n)+n=i}<<1}' <<< 9 [1] [1, 1] [1, 2, 1] [1, 3, 3, 1] [1, 4, 6, 4, 1] [1, 5, 10, 10, 5, 1] [1, 6, 15, 20, 15, 6, 1] [1, 7, 21, 35, 35, 21, 7, 1] [1, 8, 28, 56, 70, 56, 28, 8, 1] 
Source Link
manatwork
  • 20.9k
  • 5
  • 53
  • 82

Ruby: 51 characters

p=[];$_.to_i.times{n=0;p p.map!{|i|v=n;n=i;v+i}<<1} 

Sample run:

bash-4.2$ ruby -ne 'p=[];$_.to_i.times{n=0;p p.map!{|i|v=n+i;n=i;v}<<1}' <<< 1 [1] bash-4.2$ ruby -ne 'p=[];$_.to_i.times{n=0;p p.map!{|i|v=n+i;n=i;v}<<1}' <<< 9 [1] [1, 1] [1, 2, 1] [1, 3, 3, 1] [1, 4, 6, 4, 1] [1, 5, 10, 10, 5, 1] [1, 6, 15, 20, 15, 6, 1] [1, 7, 21, 35, 35, 21, 7, 1] [1, 8, 28, 56, 70, 56, 28, 8, 1]