das geht z.b. mit ner reihenentwicklung (macht man mit z.b. maple)
zuerst betrachten wir nur mal
y=10^x
wenn du x mit 1000 multiplizierst (um integerwerte zu haben)
dann lautet die neue formel:
y=10^(x/1000)
davon macht man (z.b.) ne taylorentwicklung mit entwicklungspunkt 1000:
y=10.+(0.2302585093e-1)*(x-1000.)+(0.2650949056e-4)*(x-1000.)^2+(0.2034678592e-7)*(x-1000.)^3+(0.1171255149e-10)*(x-1000.)^4+(0.5393829291e-14)*(x-1000.)^5
in dieser formel hast du nun nur noch additionen und multiplikationen.
da die koeffizienten jedoch sehr klein sind, muss auch das ergebnis erst mal in nen anderen bereich skaliert werden.
d.h. wir berechnen (z.b.) erst mal:
y=100000*10^(x/1000)
dazu müssen wir die koeffizienten einfach mit 100000 multiplizieren:
y=1000000+2303*(x-1000.)+3*(x-1000.)^2
jetzt hat man also ne reine integeroperation.
wie man sieht, ist das eigentlich einfach ne quadratische aproximation der gewünschten funktion und damit recht ungenau. trotzdem muss man mit recht großen intergerzahlen arbeiten.
für eine bessere aproximation muss man entweder noch größere integerzahlen verwenden, damit man höhere terme der taylorentwicklung verwenden kann.
oder man muss ne andere reihenentwicklung verwenden (da must du dann aber jemanden fragen, der sich etwas besser damit auskennt).

eine gänzlich andere methode besteht darin, einfach ne tabelle mit den 1000 werten zu berechnen und fest (in nem array) zu speichern:
z.b. y(1.234)=feld[234];
das dürfte am einfachsten und genauesten sein, braucht aber entsprechend platz.
den platzbedarf kann man zu lasten der genauigkeit reduzieren, indem man anstatt 1000 werten nur 100 speichert und dazwischen linear (oder quadratisch) interpoliert.

(ps. hoffe ich hab mich nicht verrechnet, aber das merkst du dann schon beim ausprobieren)