Java编程中的数字金字塔代码
创建显示下图的java代码:Java编程中的数字金字塔代码,java,Java,创建显示下图的java代码: 1 2 3 4 3 4 5 6 7 4 5 6 7 8 9 10 嘿,伙计们!这里有新的。我们有一个涉及java编程的练习要做,出于某种原因,在解决这个问题时,我的头脑似乎要崩溃了。到目前为止,我做了一些工作,但输出不正确 public class Pyramid { public static void main(String[] args) { int size = 10;
1
2 3 4
3 4 5 6 7
4 5 6 7 8 9 10
嘿,伙计们!这里有新的。我们有一个涉及java编程的练习要做,出于某种原因,在解决这个问题时,我的头脑似乎要崩溃了。到目前为止,我做了一些工作,但输出不正确
public class Pyramid {
public static void main(String[] args) {
int size = 10;
for (int row = 1; row <= size; row++) {
int j = 1;
int i = 1;
int counter1 = 1;
int counter2 = 1;
// print space
while (j++ <= size - row) {
System.out.print(" ");
}
// count up
j = size - (size - row);
if (j == 10) j = 0;
counter1 = 1;
while (counter1 <= row) {
System.out.print(j);
if (j == 9 && counter1 != row) j = -1;
j++;
counter1++;
}
j = j - 2;
counter2 = 1;
// count down
while (counter2 < row) {
System.out.print(j--);
if (j < 0) j = 9;
counter2++;
}
System.out.print("\n");
}
}
}
公共类金字塔{
公共静态void main(字符串[]args){
int size=10;
对于(int row=1;row这里,您在每个原始数据的中点之后进行倒计时。因此,您不是在增加数字,而是在倒计时部分减少(j
在减少)
这里你需要4个RAW。但是你已经为10个RAW编程了一些条件(这里你不需要指定最大的RAW数。你只需要输入RAW数就足够了。请找到下面的逻辑)
即使您需要增加RAW的数量,逻辑也不应该改变
逻辑:
对于每个原始数据,元素的数量应为原始数据的奇数,每个原始数据的第一个元素应以原始数据的数量开始
比如说,
如果我们考虑第三生,那么第三奇数=<代码>(3×2)-1=5</COD>。所以原始的元素数是<代码> 5 < /代码>。
第三个raw的起始元素是
3
。
因此,我们将:
3,4,5,6,7
请尝试以下代码:
int n = 5;
for (int i = 1; i < n; i++) {
int odd = (i*2) - 1;
for (int j = 1; j <= odd; j++) {
if (j==1) {
for (int x = n; x >=i; x--)
System.out.print(" ");
}
System.out.print(((j + i)-1) + " ");
}
System.out.println();
}
int size=10;
对于(int row=1,last=1;row试试这个
阶级金字塔{
public static void main(String[] args) {
int myLevel;
int i, j, k;
int x = 1;
myLevel = 6;
for (i = 1; i <= myLevel; i++) {
for (k = 1; k <= myLevel - i; k++) {
System.out.print(" ");
}
for (j = k + 1; j <= myLevel; j++) {
System.out.print(x);
}
for (int l = myLevel; l > k - 1; l--) {
System.out.print(x);
}
x++;
System.out.println("");
}
}
publicstaticvoidmain(字符串[]args){
int-myLevel;
int i,j,k;
int x=1;
myLevel=6;
对于(i=1;i我可以看到你发布的内容中有两个主要错误
10是金字塔中的最高数字,但它只有4行。因此size
应该等于4(除非它只是一个示例,行数并不重要)
我看不出你为什么要倒计时。你可以看到同一行的数字总是在增加
除此之外:
- 您应该用空格分隔数字。示例中的数字彼此粘连。这意味着您必须更改每行前面的空格数。(在示例中,您可以简单地将空格加倍)
- 其实并不重要:当您需要新行时,可以使用
System.out.println()
你为什么要标记javascript
你得到了什么输出?因为农民代表发布了不同的代码,而不是帮助修复你的代码,而且问题重复了,我会这样报告。问题的可能重复显然是家庭作业,所以指出错误要比给出完整的解决方案好。不仅如此,你不会重复修正问题的代码,但你给出一个新的。提问者通过这种方式会学到什么?@user270349我将简短地添加我删除否决票的原因。@user270349谢谢:)
int size = 10;
for (int row = 1, last = 1; row <= size; ++row, last += 3) {
for (int j = 1, max = size - row; j <= max; ++j)
System.out.print(" ");
for (int j = row; j <= last; ++j)
System.out.print(" " + j);
System.out.println();
}
// result:
// 1
// 2 3 4
// 3 4 5 6 7
// 4 5 6 7 8 9 10
// 5 6 7 8 9 10 11 12 13
// 6 7 8 9 10 11 12 13 14 15 16
// 7 8 9 10 11 12 13 14 15 16 17 18 19
// 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
// 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
// 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
public static void main(String[] args) {
int myLevel;
int i, j, k;
int x = 1;
myLevel = 6;
for (i = 1; i <= myLevel; i++) {
for (k = 1; k <= myLevel - i; k++) {
System.out.print(" ");
}
for (j = k + 1; j <= myLevel; j++) {
System.out.print(x);
}
for (int l = myLevel; l > k - 1; l--) {
System.out.print(x);
}
x++;
System.out.println("");
}
}