This code is not giving me any output

#include
using namespace std;

int last(int *a,int n, int i, int key) {
if(i==n) {
return -1;
}
if(a[i]==key) {
int bi=last(a,i+1,n,key);
if(bi!=-1) {
return bi;
}
else{
return i;
}

}
int j=last(a,n,i+1,key);
return j;

}

int main() {
int a[]={1,2,3,4,1};
int n=sizeof(a)/sizeof(int);
int k=last(a,n,0,1);
cout<<k;
return 0;
}