Algebra: Expanding 3 brackets

As a simpler example,  if I told you that (x+1)(x+a) = x^(2)+3x+2   then a would have to equal 2.

That's because (x+1)(x+a) = x^(2)+(1+a)x+a  and the only way that x^(2)+(1+a)x+a could be the same polynomial as x^(2)+3x+2 would be if a=2.

You do the same thing here except you don't really have to multiply the entire thing out.   If you did expand (x+3)(x+a)(x+7) completely, what would you get for the constant term?
If you want a quicker method to solve the problem, you could just plug in x = 0 on both sides. This is allowed since the equation is supposed to hold for all values of x (including x = 0). You then end up with 21a = 105 => a = 5.
I'll show you a similar example: Given (x + a)(x + 1) = x^2 + 3x + 2, find a.

Expanding out the right hand side, we get

(x + a)(x + 1) = x^2 + ax + x + a = x^2 + (a+1)x + a

Since we were given (x + a)(x + 1) = x^2 + 3x + 2, we now have

x^2 + (a+1)x + a = x^2 + 3x + 2

But if these two expressions are equal, then the x^2 terms must be the same (which they are). Also, the x terms must be the same. This means that a + 1 = 3, or a = 2. We can check the constant term is the same as well, where we see again that a = 2.
by
I'm giving the same answer as everyone else.

Whenever you "multi-FOIL" several binomials your last term is going to be the product of the constants, so here, 105 is the product of 3 times *a* times 7, which means *a* has got to be 5.

See how this problem is deceptively simple? It's because it's testing you on your familiarity with FOILing patterns.