Since the OP is interested in an exact equation, let me take a stab at deriving it (though it's probably late for a 2016 question).
Premise: how altimeters work
Altimeters take a QNH and a static pressure in input and spit out an altitude. In order to do that, they assume that both the QNH and the pressure are values within the International Standard Atmosphere (ISA). With this hypothesis, it's easy to show that the relation between QNH, pressure and altitude is:
$$h=\frac{T_0}{L}\left[\left(\frac{\mathrm{QNH}}{P}\right)^\frac{R_sL}{g}-\left(\frac{P}{P_0}\right)^\frac{R_sL}{g}\right]\tag{1}$$
where:
- $h$: Altitude reading in meters
- $P$: Air pressure in Pascal
- $\mathrm{QNH}$: Altimeter setting in Pascal
- $L$: Temperature lapse $=0.0065 \mathrm{~K/m}$
- $T_0$: Standard temperature $=288.15 \mathrm{~K}$
- $P_0$: Standard pressure $=101325 \mathrm{~Pa}$
- $g$: Gravitational acceleration $\approx 9.81 \mathrm{~m/s}^2$
- $R_s$: specific gas constant for dry air $\approx 287.058 \mathrm{~J \cdot kg^{−1}K^{−1}}$
That's however not only how altimeters work. This relation is general and that's how altitude, pressure and QNH always relate to each other in the ISA. For this purpose it's useful to solve for $P$ as well:
$$P=P_0\left[\left(\frac{\mathrm{QNH}}{P_0}\right)^\frac{R_sL}{g}-\frac{Lh}{T_0}\right]\tag{2}$$
ISA corrected for temperature
Sometimes, instead of using ISA, it's useful to use ISA +X, i.e. standard atmosphere with X°C of variation. X is sometimes expressed as $X=T_\mathrm{OAT}-T_\mathrm{ISA}$. For example if at sea level pressure is 29.92 inHg and temperature is 10°C, then $X=-5$
Equation 1 works also in ISA +X but it needs a slight correction:
$$h_{ISA~+X}=\frac{T_0+X}{L}\left[\left(\frac{\mathrm{QNH}}{P}\right)^\frac{R_sL}{g}-\left(\frac{P}{P_0}\right)^\frac{R_sL}{g}\right]\tag{3}$$
The problem
The problem at hand basically means using equation 2 to get the air pressure outside the aircraft, and replacing it back into equation 3 (with the appropriate temperature correction X). If one does the replacement, the 2 equations simplify nicely in the following relation:
$$h_{true} = h\cdot\left(1+\frac{X}{T_0}\right)\tag{4}$$
where we use $h$ to denote the altimeter reading and $h_{true}$, the altitude with the temperature correction. Note that this equation is exact, it's not an approximation. If we replace the actual value of $T_0$ we get
$$h_{true} = h + 0.00347h\cdot\left(T_\mathrm{OAT}-T_\mathrm{ISA}\right)\tag{5}$$
$$h_{true}\approx h+h\frac{4}{1000}\left(T_\mathrm{OAT}-T_\mathrm{ISA}\right)\tag{6}$$
Which is the equation that shows up in other answers. I'm not sure why $\frac{1}{T_0}=0.00347$ is approximated as 0.004 but I suppose it's to make it conservatively safer (since it approximates the true altitude in excess)
Solution
In order to solve the problem, all we need to compute is the temperature deviation X and replace it in equation 5. To do so, we first compute the Pressure Altitude with the following relation:
$$\mathrm{P.A.}=h+\frac{T_0}{L}\left[1-\left(\frac{\mathrm{QNH}}{P_0}\right)^\frac{R_sL}{g}\right]=3670\mathrm{~m}=12041\mathrm{~ft}\tag{7}$$
It follows that:
$$X=T_\mathrm{OAT}-T_\mathrm{ISA}=T_\mathrm{OAT}-\left(T_0-L\cdot\mathrm{P.A.}\right)=-11.145\mathrm{~C}\tag{8}$$
Finally:
$$h_{true} = h + 0.00347\cdot h\cdot X=12016.6\mathrm{~ft}\tag{9}$$
One final note: calling it "true" altitude is misleading because, it probably better approximates the actual altitude, but the true altitude may still be different. The assumption is that temperature decays linearly with altitude, which may not necessarily be the case