输出的结果和输出样例不同,哪里有问题

SZ斐波拉契数列
感谢解答

img

#include 
int a,b;
int function(int n);
int main()
{
    int T,n;
    scanf("%d",&T);
    for(int i=1;i<=T;i++)
    {
       scanf("%d%d%d",&a,&b,&n);
       printf("%d\n",function(n));
    }
    return 0;
}
int function(int n)
{
    int result;
    if(n==1)
     result=a;
    if(n==2)
    result=b;
    if(n>2&&n%2!=0) 
          result=function(n-1)+function(n-2);
    if(n>2&&n%2==0)
         result=function(n-1)+function(n-2)+function(n-3);

    
}





img


#include <stdio.h>
int a,b;
int function(int n);
int main()
{
    int T,n;
    scanf("%d",&T);
    for(int i=1;i<=T;i++)
    {
       scanf("%d%d%d",&a,&b,&n);
       printf("%d\n",function(n));
    }
    return 0;
}
int function(int n)
{
    if(n==1)
       return a;
    if(n==2)
       return b;
    if(n%2!=0) 
          return function(n-1)+function(n-2);
     return function(n-1)+function(n-2)+function(n-3);

}