Solve for $g : \mathbb{Z}^+ \to \mathbb{Z}^+$ such that

$$g(m + n) = g(m) + mn(m + n) + g(n)$$

Show that $g(n)$ is of the form $\sum_{i=0}^{d} {c_i n^i}$ \\
and find necessary and sufficient conditions on $d$ and $c_0, c_1, \cdots , c_d$
1. Given the functional equation for \( g : \mathbb{Z}^+ \to \mathbb{Z}^+ \):
   \[
   g(m + n) = g(m) + mn(m + n) + g(n)
   \]
   we need to find \( g(n) \) in the form \( \sum_{i=0}^{d} c_i n^i \) and determine the necessary and sufficient conditions on \( d \) and the coefficients \( c_0, c_1, \ldots, c_d \).

2. Set \( m = 1 \) in the given equation:
   \[
   g(n + 1) = g(1) + 1 \cdot n \cdot (n + 1) + g(n)
   \]
   Simplifying, we get:
   \[
   g(n + 1) = g(n) + n(n + 1) + g(1)
   \]
   Let \( g(1) = \lambda \). Then:
   \[
   g(n + 1) = g(n) + n(n + 1) + \lambda
   \]

3. To find \( g(n) \), consider the telescoping sum from \( n = 1 \) to \( n = k \):
   \[
   \sum_{n=1}^{k} (g(n + 1) - g(n)) = \sum_{n=1}^{k} (n(n + 1) + \lambda)
   \]
   The left-hand side simplifies to:
   \[
   g(k + 1) - g(1)
   \]
   The right-hand side is:
   \[
   \sum_{n=1}^{k} n(n + 1) + \sum_{n=1}^{k} \lambda
   \]

4. Calculate the sums:
   \[
   \sum_{n=1}^{k} n(n + 1) = \sum_{n=1}^{k} (n^2 + n) = \sum_{n=1}^{k} n^2 + \sum_{n=1}^{k} n
   \]
   Using the formulas for the sums of squares and integers:
   \[
   \sum_{n=1}^{k} n^2 = \frac{k(k + 1)(2k + 1)}{6}, \quad \sum_{n=1}^{k} n = \frac{k(k + 1)}{2}
   \]
   Therefore:
   \[
   \sum_{n=1}^{k} n(n + 1) = \frac{k(k + 1)(2k + 1)}{6} + \frac{k(k + 1)}{2}
   \]
   And:
   \[
   \sum_{n=1}^{k} \lambda = k \lambda
   \]

5. Combining these results:
   \[
   g(k + 1) - \lambda = \frac{k(k + 1)(2k + 1)}{6} + \frac{k(k + 1)}{2} + k \lambda
   \]
   Simplifying:
   \[
   g(k + 1) = \frac{k(k + 1)(2k + 1)}{6} + \frac{k(k + 1)}{2} + k \lambda + \lambda
   \]
   \[
   g(k + 1) = \frac{k(k + 1)(2k + 1) + 3k(k + 1) + 6k \lambda + 6 \lambda}{6}
   \]
   \[
   g(k + 1) = \frac{k(k + 1)(2k + 4) + 6k \lambda + 6 \lambda}{6}
   \]
   \[
   g(k + 1) = \frac{k(k + 1)(k + 2) + 6k \lambda + 6 \lambda}{6}
   \]

6. To find \( g(k) \), we need to adjust the index:
   \[
   g(k) = \frac{(k-1)k(k+1)}{6} + \frac{(k-1)k}{2} + (k-1) \lambda + \lambda
   \]
   Simplifying further:
   \[
   g(k) = \frac{k^3 - k}{3} + k \lambda
   \]

7. Therefore, \( g(n) \) is a polynomial of degree 3:
   \[
   g(n) = \frac{n^3 - n}{3} + n \lambda
   \]
   This gives us the coefficients:
   \[
   d = 3, \quad c_3 = \frac{1}{3}, \quad c_2 = 0, \quad c_1 = \lambda - \frac{1}{3}, \quad c_0 = 0
   \]

The final answer is \( \boxed{ g(n) = \frac{n^3 - n}{3} + n \lambda } \).