def g_it(n)
 g_0=0
 g_1=1
 g_2=2

 return n if (n<3) 

 tmp=0
 (n-2).times { |i|
  tmp=g_2+2*g_1+3*g_0
  g_0=g_1
  g_1=g_2
  g_2=tmp
  }
 tmp  
end

20.times { |i| p g_it(i)}