【发布时间】:2010-05-07 08:20:20
【问题描述】:
为了我的学习目的,我需要构建一个数组数组,其中填充了具有固定期限的整数的分区。给定一个整数,假设 10 并给定固定数量的项,假设 5 我需要填充这样的数组
10 0 0 0 0
9 0 0 0 1
8 0 0 0 2
7 0 0 0 3
............
9 0 0 1 0
8 0 0 1 1
.............
7 0 1 1 0
6 0 1 1 1
............
...........
0 6 1 1 1
.............
0 0 0 0 10
我对 Java 很陌生,对所有的 for 循环都感到困惑。现在我的代码可以对整数进行分区,但不幸的是它没有固定期限
公共类分区{
private static int[] riga;
私有静态 void printPartition(int[] p, int n) {
for (int i= 0; i < n; i++)
System.out.print(p[i]+" ");
System.out.println();
}
private static void partition(int[] p, int n, int m, int i) {
if (n == 0)
printPartition(p, i);
else
for (int k= m; k > 0; k--) {
p[i]= k;
partition(p, n-k, n-k, i+1);
}
}
public static void main(String[] args) {
riga = new int[6];
for(int i = 0; i<riga.length; i++){
riga[i] = 0;
}
partition(riga, 6, 1, 0);
}
}
我得到它的输出是这样的:
1 5
1 4 1
1 3 2
1 3 1 1
1 2 3
1 2 2 1
1 2 1 2
1 2 1 1 1
我实际上试图了解如何进行是将它与一个固定的术语,这将是我的数组的列。所以,我一直在努力寻找一种方法来实现它 较少的动态。有什么帮助吗?
【问题讨论】:
标签: java algorithm arrays matrix multidimensional-array