兔子生兔子问题c语言

一对免子,从出生后第3个月起每个月
都生一对免子。小免子长到第3个月后
每个月又生一对兔子。假如兔子都不
死,请问第1个月出生的一对兔子,至
少需要繁衍到第几个月时兔子总数才可
以达到N对?
#include <stdio.h>

int main()
{
int x1,x2,i,N,x=0;
scanf("%d",&N);
x1=1;
x2=1;
i=2;
while(x<N)
{
if(N==1){
i=1;
break;
}
if(N==2){
i=3;
break;
}

    x=x1+x2;
    x1=x2;
    x2=x;
    i++;

}
printf("%d\n",i);
return 0;

}
请问循环里面除if之外,是如何实现问题的解决的呢,看不懂这方程

其实就是斐波那契数列,你把他们前几个每个月有多少兔子列出来,就会发现啦