Greetings.
I have a java method that I consider expensive, and I'm trying to replace some calls to it with a mathematical expression. Problem is, I suck at math. I mean really suck.
The following should explain the pattern that I'm trying to exploit.
f(x) -> y
f(x*2) -> f(x)+1
That is, whenever I double the value for x, the value for y will be 1 greater than for x/2. Here are some example output:
f(5) -> 6
f(10) -> 7
f(20) -> 8
f(40) -> 9
f(80) -> 10
f(160) -> 11
f(320) -> 12
My current approach is brute force. I'm looping over the X and test how many times I can halve it before I reach 5, and finally I add 6. This works and is faster than the call to the original method. But I was looking for a more "elegant" or potentially cheaper solution.
Accepted answer goes to the one who manages to help me without pointing out how stupid I am :)
(the title probably sucks, because I don't know what I'm looking for)