斐波那契数列帮我这个大一的解决一下。

意大利数学家斐波那契(Leonardo Fibonacci)是12、13世纪欧洲数学界的代表人物。他提出的“兔子问题”引起了后人的极大兴趣。 “兔子问题”假定一对大兔子每一个月可以生一对小兔子,而小兔子出生后两个月就有繁殖能力,问从一对小兔子开始,n个月后能繁殖成多少对兔子?

输入格式:
首先输入一个正整数T,表示测试数据的组数,然后是T组测试数据。每组测试输入一个正整数n(1≤n≤46)。

输出格式:
对于每组测试,输出n个月后能繁殖成的兔子对数。

输入样例:
1
4
输出样例:
3

我写的但是pta显示答案错误

#include<stdio.h>
  main()
  {int a[46],t,i,j,n;
   a[0]=1;a[1]=1;
  scanf("%d",&t);
 for(j=0;j<t;j++)
 {scanf("%d",&n);
   if(n<=2)
  {
  printf("%d\n",a[n-1]);
       return 0;
 }
  for(i=2;i<n;i++) 
  {   a[i]=a[i-1]+a[i-2];  
  }
  printf("%d\n",a[n-1]);
 }}

最后一组测试数据不需要输出换行符吧