Ну, я должен опоздать, чтобы ответить, Кэйван избил меня. Но вот петля с нуля. Возможно, это все еще полезно для вас или для кого-то еще. Я также не смог понять, для какого числа использовался, поэтому я использовал его как количество слоев из центра.
// The number variable.
int num = 2; // Num is used to specify the amount of layers.
// used variables
int size = num * 2 + 1; // total size of the diamond.
int i; // row
int j; // col
int a; // amount to draw
int s; // start to draw
if (num == 0) {
// The diamond has a thickness of 0, only print the center
System.out.print("$");
} else if (num >= 1) {
// the diamond has a thickness of at least 1.
for (i = 1; i <= size; i++) {
for (j = 1; j <= size; j++) {
if (i == num + 1 && j == num + 1) {
// We are in the center, print the $ and continue
System.out.print("$");
continue;
} else {
if (i <= num + 1) {
// amount is row times 2 minus one
a = i * 2 - 1;
} else {
// Inverted: amount is (size minus row plus 1) times two minus one
a = (size - i + 1) * 2 - 1;
}
// starting point is (thickness plus one) minus (amount divided by two)
s = (int)((num + 1) - (a/2));
// if col is bigger or equals start and col is less or equals start plus amount minus one
if (j >= s && j <= s + a - 1) {
// print a "#";
System.out.print("#");
} else {
// we are not suppose to print, print a space.
System.out.print(" ");
}
}
}
// reached the end of the line, begin on a new lie
System.out.print("\n");
}
}
Выход: num = 1;
#
#$#
#
Выход: num = 2;
#
###
##$##
###
#
Выход: num = 15;
#
###
#####
#######
#########
###########
#############
###############
#################
###################
#####################
#######################
#########################
###########################
#############################
###############$###############
#############################
###########################
#########################
#######################
#####################
###################
#################
###############
#############
###########
#########
#######
#####
###
#
EDIT: 1 Малый редактировать в комментариях источника (опечатки)
Не могли бы вы опубликовать ожидаемый результат? – Tunaki
@ Tunaki, если num = 2, ожидаемый результат: __ * __ _ * $ * _ __ * __ – SMcGwier
Можете ли вы [изменить] это в вопрос? – Tunaki