This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.

Solutions are [71][17]8954632 (a-i). Most Multiplications get greater than 9 (3*4) so I started there. 1*x is smaller than 10 for every x in (1-9), but would lead to 1*x = x and that's impossible. h*i=g and i*f=c don't have g or c on the left side. Therefore h,i,f must be at least 2. Since 2*5 is 10, every multiplication is too big if a 5(or bigger) and no 1 is involved. 2*3 and 2*4 are the only candidates, which is consistent to our problem: i occures two times and is therefore 2. h and f are 3 or 4. Therefore c is 6 or 8 and g is 6 or 8.

If f is 3 or 4, we only have 1,7 and 9 left for d. But e+f=d, therefore d must be greater than f, which might be 7 or 9. If d would be 7, e would need to be 3 or 4, which is impossible, since f or h are 3 and 4. d = 9. e+ (3,4) = 9 => e:={6, 5}, but since g is 6 or c is 6, e=5 and therefore f=4.

For a and b we have 1 and 7 left, which leads concluent to c=8. But whether a or b are 1 or 7 is not decideable.

To verify my assumption I elegantly skipped the possibility to create a permutation, and let Random poof my assumption: