2016-03-07 2 views
-4

Эй, парень так старался делать то же упражнение самостоятельно, и я думал, что сделать бриллиант из астриков будет круто, но я застрял на последней части. Это то, что получение им и не могут понять, как перевернуть треугольник, или сделать полный алмазпытается сделать алмаз, но не может понять, как его закончить?

* 
    *** 
***** 

public static String drawDiamond(int n) { 
    String results = ""; 
    int cols = 1; 
    int spaces = n/2; 
    while (cols <= n) { 
     results += drawChars(" ", spaces) + drawChars("*", cols) + "\n"; 
     /*-------------------------------------------------------------------------------- 
while(cols>=n){ 
results += drawChars(" ", spaces) + drawChars("*", cols)+"\n";<--- this was just test code. 

cols-=2; 
spaces++; 
} 
     */-------------------------------------------------------------------------------- 

     cols += 2; 
     spaces--; 
    } 

    return results; 
} 
+1

Возможная Дубликат [Как нарисовать алмаз звездочками] (http://stackoverflow.com/questions/20129773/how- to-draw-diamond-with-asterisks) –

+0

А также http://www.java2s.com/Tutorial/Java/0080__Statement-Control/PrintoutaDiamond.htm –

ответ

0

Просто продлив логику и предполагается, что ваш п = 5, после 3-я итерации вашего значения cols будет 7 и, следовательно, выход из цикла. Поэтому, когда значение cols достигло значения n, вы должны обратить вспять процесс путем увеличения spaces и уменьшения cols.

Убедитесь, что вы используете какой-либо другой переменной для условия цикла, в противном случае вы идете для бесконечного цикла

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