Solution 1
Define fh=f(f(⋯f(f(x))⋯)), where the function f is performed h times. We find that f(84)=f(f(89))=f2(89)=f3(94)=…fy(1004). 1004=84+5(y−1)⟹y=185. So we now need to reduce f185(1004).
Let’s write out a couple more iterations of this function:
f185(1004)=f184(1001)=f183(998)=f184(1003)=f183(1000)=f182(997)=f183(1002)=f182(999)=f183(1004)
So this function reiterates with a period of 2 for x. It might be tempting at first to assume that f(1004)=1001 is the answer; however, that is not true since the solution occurs slightly before that. Start at f3(1004):
f3(1004)=f2(1001)=f(998)=f2(1003)=f(1000)=997
Note that we should also be suspicious if our answer is 1001- it is a 4-digit number, and we were not asked to, say, divide our number by 13.
Solution 2
We start by finding values of the function right under 1000 since they require iteration of the function.
f(999)=f(f(1004))=f(1001)=998
f(998)=f(f(1003))=f(1000)=997
f(997)=f(f(1002))=f(999)=998
f(996)=f(f(1001))=f(998)=997
Soon we realize the f(k) for integers k<1000 either equal 998 or 997 based on its parity. (If short on time, a guess of 998 or 997 can be taken now.) If k is even, f(k)=997. If k is odd, f(k)=998. 84 has even parity, so f(84)=997. The result may be rigorously shown through induction.
Solution 3
Assume that f(84) is to be performed n+1 times. Then we have
f(84)=fn+1(84)=f(fn(84+5))
In order to find f(84), we want to know the smallest value of
fn(84+5)≥1000
Because then
f(84)=f(fn(84+5))=(fn(84+5))−3
From which we'll get a numerical value for f(84).
Notice that the value of n we expect to find is basically the smallest n such that after f(x)=f(f(x+5)) is performed 2n times and then f(x)=x−3 is performed back 2n times, the result is greater than or equal to 1000.
In this case, the value of n for f(84) is 916, because
84+2916⋅5−2916⋅3=1000⟹f916(84+5))=1000
Thus
f(84)=f(f916(84+5))=f(1000)=1000−3=997
~ Nafer
Solution 4 (really a solution, DO THIS ON A REAL TEST)
Open up a coding IDE and use recursion to do this problem. The idea is to define a function (I called it f, you can call it whatever you want) with parameter n (or 84 in this case) and say if n is greater than 1000, then return n−3. Else, return f(f(n+5)). Python code:
def f(n):
if n >= 1000:
return n - 3
else:
return f(f(n + 5))
print(f(84))
Or [python]def f(n):
if n < 1000:
return f(f(n + 5))
else:
return n-3
print(f(84))[/python]
~ NL008, Sernegeti22