Problema nu e cu zerourile dinaintea numarului, ci la cazul in care nu sunt cifre pare. In cazul in care nu exista cifre pare in numar, k trebuie sa devina -1.
void F(int n, int a[9], int &k)
{
if(n > 0)
{
F(n-1,a,k);
if(a[n-1] % 2 == 0)
{
if(k == -1) k = 0;
k = k * 10 + a[n-1];
}
}
else k = -1;
}