void inint () { //num用z个表示的方法数就是 (num-一个平方数)用z-1个表示的数量之和 dp[0][0] = 1; for ( int i = 1; i * i <= maxn; i++ ) {// for ( int j = i * i; j <= maxn; j++ ) { for ( int z = 1; z <= 4; z++ ) { dp[j][z] += dp[j - i * i][z - 1]; } } } }
为什么先循环平方数i 再循环整数j而不能先循环j后循环i??