与java的金字塔

时间:2015-09-25 04:10:16

标签: java

我需要帮助。 我尝试制作一个使用两个字母的金字塔:

O
OO
OXO
OXXO
OXXXO
OXXXXO
OOOOOOO
好吧,因为我还是java新手 我被困在这里

O
OX
OXX
OXXX
OXXXX
OXXXXX
OXXXXXX

这是我的代码:

import java.util.Scanner;
class Xx {
  public static void main(String[] args) {
    int x;
    Scanner Sc = new Scanner(System.in);
    System.out.print("Line of Pyramid :  ");
    x = Sc.nextInt();
    for (int y = 0; y <= x; y++) {
      System.out.print("O");
      for (int z = 1; z <= y; z++) {
        System.out.print("X");
      }
      System.out.println();
    }
  }
}

3 个答案:

答案 0 :(得分:3)

我会从一个重复给定字符n次的方法开始,比如

static String repeat(char ch, int n) {
    StringBuilder sb = new StringBuilder();
    for (int i = 0; i < n; i++) {
        sb.append(ch);
    }
    return sb.toString();
}

然后你可以调用它来建立你的金字塔。像

这样的东西
int x = Sc.nextInt();
System.out.println("O");
System.out.println("OO");
for (int y = 1; y <= x; y++) {
    System.out.print("O");
    char ch = 'X';
    if (y == x) {
        ch = 'O';
    }
    System.out.print(repeat(ch, y));
    System.out.println("O");
}

当我使用5运行时)生成(请求的),

O
OO
OXO
OXXO
OXXXO
OXXXXO
OOOOOOO

答案 1 :(得分:0)

int x;
Scanner Sc = new Scanner(System.in);
System.out.print("X :  ");

x = Sc.nextInt();
for (int y = 0; y <= x; y++) 
{
    System.out.print("O");

    for (int z = 1; z <= y; z++) 
    {
        System.out.print("X");
        if(z == y)
            System.out.print("O");
    }
   System.out.println();
}
for(int i=0; i<= x+2; i++)
{
    System.out.print("O");
}

输出:

X :  5
O
OXO
OXXO
OXXXO
OXXXXO
OXXXXXO
OOOOOOOO

答案 2 :(得分:-2)

import java.util.Scanner;
class Xx {
  public static void main(String[] args) {
    int x;
    Scanner Sc = new Scanner(System.in);
    System.out.print("X :  ");
    x = Sc.nextInt();
    for (int y = 0; y <= x; y++) {
      System.out.print("O");
      for (int z = 1; z <= y; z++) {
         if(z==y||y==x)
          System.out.print("O");
         else
        System.out.print("X");

      }
      System.out.println();
    }
  }
}

<强>解释

你可以使用z == y条件识别coloumn边缘,并且base coloumn应该填充&#39; O&#39; ,检查代码中添加了y == x条件,将给出您的预期输出