Java 生成给定数字的金字塔?
我想为给定的数字“n”(“n”-也是最后一个金字塔的高度)生成一个金字塔堆栈。算法应该堆叠(n-1)个金字塔。结果应该是这样的:Java 生成给定数字的金字塔?,java,for-loop,printf,Java,For Loop,Printf,我想为给定的数字“n”(“n”-也是最后一个金字塔的高度)生成一个金字塔堆栈。算法应该堆叠(n-1)个金字塔。结果应该是这样的: height of base pyramid: 4 2 2 4 2 2 2 4 2 2 4 8 4 2 2 2 4 2 2 4 8 4 2 2 4 8 16 8 4 2 我已经有了生成最后一个金字塔的代码块: for (i =
height of base pyramid: 4
2
2 4 2
2
2 4 2
2 4 8 4 2
2
2 4 2
2 4 8 4 2
2 4 8 16 8 4 2
我已经有了生成最后一个金字塔的代码块:
for (i = 1; i <= n; i++) {
for (j = 1; j <= n - i; j++)
System.out.printf("%5s", "");
for (k = 1; k < i; k++)
System.out.printf("%5d", (int) Math.pow(2, k));
for (k = i; k >= 1; k--)
System.out.printf("%5d", (int) Math.pow(2, k));
System.out.println();
}
for(i=1;i在最外层添加一个for
循环:-
for (int z = n - 2; z >= 0; z--)
因此,循环结构变为:-
for (int z = n - 2; z >= 0; z--) {
for (int i = 1; i <= n - z; i++) {
for (int j = 1; j <= n - i; j++)
System.out.printf("%5s", "");
for (int k = 1; k < i; k++)
System.out.printf("%5d", (int) Math.pow(2, k));
for (int k = i; k >= 1; k--)
System.out.printf("%5d", (int) Math.pow(2, k));
System.out.println();
}
}
用于(int z=n-2;z>=0;z--){
对于(int i=1;i在最外层添加一个for
循环:-
for (int z = n - 2; z >= 0; z--)
因此,循环结构变为:-
for (int z = n - 2; z >= 0; z--) {
for (int i = 1; i <= n - z; i++) {
for (int j = 1; j <= n - i; j++)
System.out.printf("%5s", "");
for (int k = 1; k < i; k++)
System.out.printf("%5d", (int) Math.pow(2, k));
for (int k = i; k >= 1; k--)
System.out.printf("%5d", (int) Math.pow(2, k));
System.out.println();
}
}
用于(int z=n-2;z>=0;z--){
对于(int i=1;i提示:-
您拥有的代码生成一个长度为n
将其封装在一个for
循环中,循环时间为counter=n-1
直到counter=0
在现有代码中,将n
的值替换为n-counter+1
提示:-
您拥有的代码生成一个长度为n
将其封装在一个for
循环中,循环时间为counter=n-1
直到counter=0
在您现有的代码中,将n
的value.of替换为n-counter+1
好,那么该代码有什么问题?您可以将(int)Math.pow(2,k)
简单地重写为1好,那么该代码有什么问题?您可以将(int)Math.pow(2,k)
简单地重写为1@MukulGoel.haha:)是的,这就是为什么我认为我也应该提醒他。@MukulGoel.haha:)。是的,这就是为什么我认为我也应该提醒他。