为什么longlong用时比int快?

1 1 2 3 5 8算这个数列前n项和。结果int用时35ms。longlong用时15ms。就一个名称为什么差距这么大

img

#include<stdio.h>
#include<string.h>
 int f[50];//int用时35ms
int main()
{
int i, j, k;
    f[0] = 0, f[1] = 1;
for(i = 2; i <= 41; i ++)
        f[i] = f[i - 1] + f[i - 2];
while(scanf("%d", &k) == 1)
        printf("%d\n", f[k + 1] - f[k - 1] - 1 + f[k + 1]);
return 0;
}
#include<stdio.h>
#include<string.h>
long long int f[50];//longlong用时15ms
int main()
{
int i, j, k,m;
    f[0] = 0, f[1] = 1;
for(i = 2; i <= 41; i ++)
        f[i] = f[i - 1] + f[i - 2];
while(scanf("%d", &k) == 1)
        printf("%d\n", f[k + 1] - f[k - 1] - 1 + f[k + 1]);
return 0;
}

问题相关代码,请勿粘贴截图
运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果

如果你是64位机,处理64位最快,处理32位数据反而更慢
你看下你机器的long long长度和处理器位数