In essence, the purpose of additional variables in a context like this is to break down the computation process into smaller more human understandable steps. You could combine these operations into much more dense instruction sets, however then it would be more difficult to understand and, critically, to debug. To that end, a quote...
"Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it." --Brian Kernighan
(just in case: https://stackoverflow.com/questions/1103299/help-me-understand-this-brian-kernighan-quote)