我需要帮助。 我尝试制作一个使用两个字母的金字塔:
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();
}
}
}
答案 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条件,将给出您的预期输出