2016-12-15 2 views
0

Меня попросили решить этот алгоритм. И до сих пор это то, что я имею относительно кода Java. Я не знаю, где чего-то не хватает. Проблема заключается в следующем: Написать класс с именем ProblemA003 что Выходов, следующая форма (что буква X с помощью символов «$» на фоне консоли):Печать буквы X на фоновой консоли

Просто выводится на консоль (с использованием System.out) Предположим, что консольный экран имеет ширину 25 строк и ширину 79 символов (см. Ниже для консоли - он содержит символ «=», с соответствующей нумерацией для каждого десятого столбца и строки. Форма должна быть сосредоточена на этом экране консоли, т.е. средний «$» должен находиться в строке 13, столбец 40 В качестве входного сигнала для программы следует указать один параметр int (который вы можете назвать sizeOfX). Этот параметр укажет, сколько «$» находится в X по обе стороны от средний «$». Вы можете просто пройти этот параметр осуществляется с помощью «основного» метода. Для более четкого описания параметра sizeOfX см. Пример ниже, когда sizeOfX = 5 Примечание: параметр sizeOfX должен принимать только значения 1-9 (включая 1 и 9). Конечно, чем больше значение sizeOfX, тем больше размер X, который ваша программа должна произвести.

мой метод:

private static void MakeACross(int number) { 
    int start = 0; 
    int end = number - 1; 
    for (int i = 0; i < number; i++) { 
     System.out.print("=="); 
     for (int j = 0; j < number; j++) { 
      System.out.print("=="); 
      if (start == end && j == i) { 
       System.out.print('$'); 
      } else if (start == j || end == j) { 
       System.out.print('$'); 
      } else { 
       System.out.print(' '); 
      } 
     } 
     start++; 
     end--; 
     System.out.println("=="); 
    } 
} 

Любой, кто может помочь мне о том, как я могу решить эту проблему дальше будет высоко оценен.

вывод должен быть следующим: если входной сигнал 5 (то есть sizeOfX = 5), ваша программа должна произвести ТОЧНО выход (обратите внимание на «1» и «2» в первом столбце строк 10 и 20 соответственно)

ответ

0

Может быть, будет работать

public void PrintX(int number) 
    { 


     int headLoc = 0, tailLoc = number - 1; 

     for (int i = 0; i < number; i++) 
     { 
      string line = ""; 
      for (int j = 0; j < number; j++) 
      { 
       if (j == headLoc || j == tailLoc) 
       { 
        line += "="; 
       } 
       else 
       { 
        line += " "; 
       } 
      } 

      headLoc++; 
      tailLoc--; 
      System.out.println(line); 

     } 


    } 
Смежные вопросы