class Solution {
public int[] numberOfDice(int n) {
int[] res = new int[5*n + 1];
int[][] f = new int[n+1][6*n+1];
f[0][0] = 1;
// 状态定义:f[i][j]表示第i次投色子总和为j的方案数
// 枚举次数
for(int i = 1; i <= n; i++){
// 枚举总和
for(int j = 1; j <= 6*n; j++){
// 枚举当前的投的点数
for(int k = 1; k <= Math.min(6,j); k++){
f[i][j] += f[i-1][j-k];
}
}
}
for(int i = n; i <= 6*n; i++){
res[i-n] = f[n][i];
}
return res;
}
}