2013-04-18 2 views
0

У меня есть этот код, но он печатает диагональ, подобную этому ... Я хотел перейти от верхнего правого к нижнему левому, любую идею, как повернуть его?Как превратить диагональную линию в другую сторону?

* 
* 
    * 
    * 
    * 

Код:

class Diagonal { 
    public static void main(String args[]) { 
     int row, col; 

     String spaces = " "; 

     for(row = 1; row < 6; row++) { 
      System.out.println(spaces +"*"); 
      spaces += " "; 
     } 
    } 
} 
+1

C# эквивалентно: 'Enumerable.Range (5,0) .Select (х => новая строка (»», х) + "*") ToList() ForEach (еЫп);'.. - Одиночная строка кода. –

+2

@HighCore: Я не думаю, что было бы полезно привести то, что вы могли бы сделать на другом языке. Java-потоки и блокировки поступают в Java 8, но поскольку их еще нет, как вы это сделаете на C#, это не имеет значения. –

+0

Если вы хотите использовать закрытие, вы можете также сделать это в Scala, который по крайней мере напрямую взаимодействует с Java. –

ответ

2

Вы построить вашу диагональ, вставив пространства для каждого дополнительного ряда. Поэтому, если вы начинаете с некоторого количества строк и удаляете пробел, вы должны получить инверсию. Но нам нужно очистить, как мы делаем пробелы, чтобы мы могли легче вычесть число за строку.

class Diagonal{ 
    public static void main(String args[]) { 
    int row, col; 
    for(row = 6; row > 0; row--) { 
     for (int x = 0; x < row; x++) { 
     System.out.print(" "); 
     } 
     System.out.print("*\n");//note carriage return 
    } 
    } 
} 
+0

Я стараюсь это делать, но это дает мне бесконечную диагональ – user2293093

+0

Ха-ха! Да, параметры важны. :) Внешняя для цикла должна идти от 6 до 0. –

+0

Спасибо! Я вижу это сейчас: D – user2293093

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