请问q < arr[i]那里如何理解呢?

请问q < arr[i]那里如何理解呢?

int main()
{
    int a,b,num,q = 0,sum;
    scanf("%d",&num);
    while(num > 20) {
        scanf("%d",&num);
    }
    int temp = num; 
    int arr[temp];
    for(int i = 0; i < temp; i++) {
        scanf("%d",&arr[i]);
    }
    for(int i = 0; i < temp; i++) {
        a = 1;
        b = 1;
        q = 2;
        sum = 0;
        if(arr[i] == 1 || arr[i] == 2) {
            printf("1\n");
            continue;
        }
        while(q < arr[i]) {
            __sum=a+b____
            __a=b___
            __b=sum___
            q++;
        }
        printf("%d\n",sum);
    }
}


就是 q 从 2 循环 arr[i]减1

这个程序是干嘛的

这个程序是用来计算斐波那契数列中指定的项,其中num表示总共要计算数列项的数目,数组arr存放的是要计算的数列项的序号(从1开始计数)