>>366
#include <stdio.h>
#define K0 0
#define K1 1

void fib(int n, int buf[], int size)
{
  int end = n < size ? n : size;
  int i = 0;
  if( n > 1 ) buf[ i++ ] = K0; else return;
  if( n > 2 ) buf[ i++ ] = K1; else return;
  for( ; i < end; i++ )
    buf[ i ] = buf[ i - 1 ] + buf[ i - 2 ];
}

void print(int buf[], int size)
{
  int i;
  for( i= 0; i < size; i++ )
    printf("%d%c", buf[i], i % 10 == 9 ? '\n' : ' ');
}

#define N 40
int main()
{
  int buf[N];
  fib( N, buf, N );
  print( buf, N );
  return 0;
}