给定一个总数,我需要计算表示 1 和 k(含)之间总数的方法数。
例如:total=5 and k=3 即(1 到 3),没有。方式= 5,不同的方式是:
[1+1+1+1+1]
[1+1+1+2]
[1+2+2]
[1+1+3]
[2+3]
Run Code Online (Sandbox Code Playgroud)
我的代码生成 6 而不是 5。谁能帮我解决这个问题:
public static int ways(int total, int k) {
int C[][] = new int[n + 1][k + 1];
int i, j;
for (i = 0; i <= n; i++) {
for (j = 0; j <= Math.min(k, i); j++) {
if (j == 0 || j == i) {
C[i][j] = 1;
} else {
C[i][j] = C[i - 1][j - …Run Code Online (Sandbox Code Playgroud)