Предполагается, что мой код будет составлен прямо. Однако в приведенном ниже примере предполагается, что в конце будет еще один символ A
, как во втором примере.
ABCDDCBA
ABCCBA
ABBA
AA
ABCDDCBA
ABCCBA
ABBA
AA
A
Это мой код. Он начинается с ABCDDCBA
и каждый раз удаляет символы в середине. Так что ABCDDCBA
будет ABCCBA
, когда D будут удалены. Однако, когда есть два символа (всегда одинаковые), код должен удалить один, но это не так.
public static void pyramid(int n)
{
int i, j, num, gap;
// outer loop to handle number
// of rows n in this case
for (i = n; i >= 0; i--) {
// inner loop to create right triangle
// gaps on left side of pyramid
for (gap = n - 1; gap >= i; gap--) {
System.out.print(" ");
System.out.print(" ");
}
// initializing value corresponding to ASCII value of 'A'
num = 'A';
// loop to print characters on
// left side of pyramid
for (j = 1; j <= i; j++) {
System.out.print((char)num++ + " ");
}
// loop to print characters on
// right side of pyramid
for (j = i - 0; j >= 1; j--) {
System.out.print((char)--num + " ");
}
System.out.println("");
}
}
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
pyramid(n);
}
Пожалуйста, помогите мне. (