Beh... il passo ricorsivo è sbagliato.
Se y non è uguale a 1 richiami la funzione passandogli y-1... alla fine arriverai a y = 1 e verrà restituito x. Da nessuna parte fai alcun calcolo (ovvero, il passo ricorsivo).
Prova a ragiunarci un po' su...
Questo è ciò che viene fatto dalla tua funzione, passo per passo (con y = 3 altrimenti diventa lunghino):
codice:
+-- prodotto(5, 3)
3 == 1 ? No:
+--+-- prodotto (5, 2)
2 == 1 ? No:
+--+--+-- prodotto (5, 1)
1 == 1 ? Sì:
+--+--+-- ritorno 5
+--+-- ritorno 5
+-- ritorno 5
Stampo 5
Ciao.