Pergunta de entrevista da empresa IBM

Optimize this code (like what compiler would reconstruct an equivalent source code as): int fn (int a, int b) { int sum = 0; for(int i=4*a;i>0;i--) { sum+=b*i*i; } return sum; }

Respostas da entrevista

Sigiloso

5 de set. de 2013

One of them is replace 4*b with a<<2. But there are more ways I didn't find.

Sigiloso

12 de dez. de 2013

the loop can be replaced by one line (basic series formula) : sum = b* 4*a *(4*a +1) *(8*a+1)/6 http://www.tug.org/texshowcase/cheat.pdf