Забавление с Java - нарисувайте диамант
Наскоро намерих интересна заявка от студент на Java в един от форумите, които прочетох. Неговият клас беше помолен да използва контур за рисуване на диамант от звездичките (*). Той имаше правилно и функциониращо решение, но бе отбелязан, тъй като беше прекалено сложен и имаше няколко бримки. Студентът поиска предложения за по-лесни начини за постигане на същия резултат. Мислех, че това е интересен проблем и реших да опитам моята ръка. Моята програма е по-долу (или можете да изтеглите копие тук.) Това очевидно не е производствен код - за едно нещо, докато аз обичам простотата на оператора ?:, опитвам се да не го използвам в производствения код, защото много програмистите установяват, че затруднява четенето и разбирането. Да не говорим, този код ще се счупи ако MAX_WIDTH се променя на число, по-голямо от 46. Но това е пример за доста компактен и логичен метод за постигане на желания резултат. Можете ли да се справите по-добре? Докладвайте отново във форума ни.

/*
 * diamonds.java
 *
 * Създадено на 4 юни 2007 г., 23:39 ч
 */

/**
 *
 * @author Джули Баумлер
 */
диаманти за публична класа {

/ ** Създава нов екземпляр с диаманти * /
обществени диаманти () {
}

/**
* @param аргументира аргументите на командния ред
*/
public static void main (String [] args) {
int max_width = 9; // # от знаци широки, за да се направи диамант
int width = max_width% 2 == 0? max_width / 2: max_width / 2 +1;
String stars = "************************************************** ";
Променливи за струни = "";
за (int i = 1; i <(ширина * 2); i ++) {
System.out.print (space.substring (0, (i System.out.println (stars.substring (0,2 * (i <= width? I: width- (i% width)) - 1));
}

}

}

Първоначалната заявка:
Pinimo. „Помогнете ми с java (sic).“ Онлайн публикуване. Седмица от 13 май 2007. Java дискусия (форум). 4 юни 2007 г.

Инструкции Видео: Comment tracer et couper des angles sur un carrelage (Март 2024).