The strange life of a beehive
Ruby, 181 163 153 146 characters
h=[0]*4e4
[0,-200,201,202,2,3].map{|i|h[i]=1}
gets.to_i.times{h=h.map{[g=1,200,201].map{|x|g+=h[x]+h[-x]};g&gt;5-h.rotate![-1]||g&lt;3?0:1}}
p h.count 1

This implementation follows a standard approach using an array h (dimensions 200 x 200 flattened), where each element is either 0 (no bee) or 1 (bee included). The array [0,-200,201,202,2,3] describes the initial positions of bees (relative to any initial cell).
Input and output as specified above, passes all test cases defined.
Edit 1: changed back to a wrapping solution instead of the &quot;additional space&quot;-version (which was shorter in an intermediate version but now is several characters longer).
Edit 2: removed variable b completely.
Edit 3: warning: this edit made the program horribly slow. I thus reduced the dimensions to 200 each which still is sufficient for up to 150 iterations. Instead of indexing the array by a variable we constantly rotate the array forward. Not really good design, but now we are considerably below the 150.