Hola a los dos. La forma correcta es XXXiX
La numeración romana obedece a unas reglas, algunas no son bien conocidas. Por ejemplo las siguientes.
1. I sólo puede ponerse, para restar, ante V (IV=4)y ante X (IX=9); no es correcto escribir IL para 49, ni IC para 99, ...
2. X sólo puede anteponerse para restar a C (XC=90). Por ejemplo, XD no es 490, que se escribe CDXC (400. 90).
3. C sólo puede anteponerse para restar a D (CD=400) y a M (CM=900).
Para escribir 999, hay que poner 900,90,9:CM XC IX, y no IM.
Para programar ese conversor tendrás que introducir estas condiciones.
Puede servir esta regla: una cifra sólo puede restar a otra cifra, no a un grupo de cifras.
En IXL, sale 39 si se considera que I resta a XL (incorrecto), pero por la misma razón podría salir 41 si se considera que IX resta a L (incorrecto).
Si hay más dudas, creo estar en condiciones de resolverlas (modestia aparte).
Saludos