代码运行答案一样但总通不过,请教一下哪里有问题

img


#include <stdio.h>

long long pow(int a,int b);
int main()
{
int a,b;
while(scanf("%d %d",&a,&b)!=EOF&&a!=-1&&b!=-1)
{
printf("%lld",pow(a,b));
}

return 0;

}
long long pow(int a,int b)
{
long long result;
if(b==0)
{
result=1;
}
else if(b==1||a==0)
{
result=a;
}
else if(b>1&&a!=0)
{
result=a*pow(a,b-1);
}

return result;

}