Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Java программирование > Общие вопросы по Java, Java SE, Kotlin
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.05.2012, 10:11   #1
Lucky2011
 
Регистрация: 06.07.2011
Сообщений: 3
По умолчанию Растановка ферзей. JAVA

Помогите пожалуйста. Выводит только один вариант расстановки, а нужно все... Что ни так написано?!=(


package queens;

public class Main {
static void queens(int n) {
int[] result = queens(new int[n], 0);
if (result != null) {
printPosition(result);
} else {
System.out.println("Расстановка невозможна");
}
}
static int[] queens(int[] board, int fixed) {
int n = board.length;
if (fixed == n) {
// Все ферзи уже расставлены!
return board;
}
for (int i = 0; i < n; ++i) {
if (valid(board, fixed, i)) {
board[fixed] = i;
int[] result = queens(board, fixed + 1);
if (result != null) return result;
}
}
return null;
}
static boolean valid(int[] board, int fixed, int pos) {
for (int i = 0; i < fixed; ++i) {
if (pos == board[i] || fixed - i == Math.abs(pos - board[i])) {
return false;
}
}
return true;
}

static void printPosition(int[] pos) {
int n = pos.length;
for (int row : pos) {
for (int i = 0; i < row; ++i) System.out.print(" .");
System.out.print(" *");
for (int i = row+1; i < n; ++i) System.out.print(" .");
System.out.println();
}

}
public static void main(String[] args) {
queens(8);
}
}
Lucky2011 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
N ферзей sidestep Общие вопросы C/C++ 10 22.02.2012 14:50
задача ферзей Математик_Лена Общие вопросы C/C++ 1 05.02.2012 18:04
8 ферзей Роза!!! Паскаль, Turbo Pascal, PascalABC.NET 3 23.02.2011 10:54
8 ферзей battlefrogg Помощь студентам 5 06.05.2010 15:28
8 ферзей slim5 Общие вопросы Delphi 0 15.06.2008 11:46