如何在java中使用算法获得此结果: 例如:
the_specific_number = 5
length_of_the_array = 3
这应该返回:
5 - 0 - 0;
4 - 1 - 0;
4 - 0 - 1;
3 - 2 - 0;
3 - 1 - 1;
3 - 0 - 2;
2 - 3 - 0;
2 - 2 - 1;
2 - 1 - 2;
2 - 0 - 3;
1 - 4 - 0;
1 - 3 - 1;
1 - 2 - 2;
1 - 1 - 3;
1 - 0 - 4;
0 - 5 - 0;
0 - 4 - 1;
0 - 3 - 2;
0 - 2 - 3;
0 - 1 - 4;
0 - 0 - 5;
自从10天以来我一直在考虑这个问题,但我什么都没发现
答案 0 :(得分:0)
嗯,我想在某种程度上帮助你,这就是为什么我几乎要告诉你解决这个问题的原因。您可以根据自己的要求尝试其余的事情。
public static void main(String[] args) {
try (Scanner in = new Scanner(System.in)) {
int iNum = in.nextInt();
int iRange = 3;// Fixed for now.
int iCount = 1;
int iIncrement = iRange / 2;
for (int i = iNum; i >= 0; i--) {
for (int k = 0; k < iCount; k++) {
for (int j = 0; j < iRange; j++) {
if (j == 0) {// Printing First Digit.
System.out.print(i + " - ");
} else if (j == iRange - 1) {// Printing Last Digit.
System.out.print(k + ";");
} else {
// Printing Rest of the Digits.
/**
* Edit this section to make this code generic for variable iRange.
*/
System.out.print((iNum - i - k) + " - ");
}
// System.out.print(i + " - " + j + " - " + k + " : ");
}
System.out.println();
}
iCount += iIncrement;
}
}
}
输出 - :
5
5 - 0 - 0;
4 - 1 - 0;
4 - 0 - 1;
3 - 2 - 0;
3 - 1 - 1;
3 - 0 - 2;
2 - 3 - 0;
2 - 2 - 1;
2 - 1 - 2;
2 - 0 - 3;
1 - 4 - 0;
1 - 3 - 1;
1 - 2 - 2;
1 - 1 - 3;
1 - 0 - 4;
0 - 5 - 0;
0 - 4 - 1;
0 - 3 - 2;
0 - 2 - 3;
0 - 1 - 4;
0 - 0 - 5;
描述 - :我已经为变量iNum
(the_specific_number)和固定iRange
(length_of_the_array)编写了此代码。在运行此应用程序时,它会要求iNum
手动输入并生成所需的数字数组
如果您想将其设为iRange
的通用,那么您可以更新else
部分内的逻辑。
} else {
// Printing Rest of the Digits.
/**
* Edit this section to make this code generic for variable iRange.
*/
System.out.print((iNum - i - k) + " - ");
}
您可以使用// System.out.print(i + " - " + j + " - " + k + " : ");
行来分析所有情况下i, j & K
的值,以便您可以为iRange
的可变范围编写逻辑。
我希望这会在某种程度上帮助你。如果您愿意,我们可以进一步讨论。但是在向别人询问之前尝试自己总是更好,如果你做了一些事情,那么在询问时分享完成的工作。