高级语言反汇编程序的函数调用过程
2011-12-21 12:44
232 查看
Problem:
Write an algorithm to print all ways of arranging eight queens on a chess board so that none of them share the same row, column or diagonal.
My Code:
________________________________________________________________
Write an algorithm to print all ways of arranging eight queens on a chess board so that none of them share the same row, column or diagonal.
My Code:
________________________________________________________________
package alg; import java.util.Stack; public class EightQueens { public static final int N = 8; static class Queen { public int x, y; Queen(int x, int y) { this.x = x; this.y = y; } } static void findAllResult() { Stack<Queen> s = new Stack<Queen>(); for(int i = 0; i<N; i++){ Queen q = new Queen(0,i); s.push(q); locateNextQueen(1, s); } } static void locateNextQueen(int row, Stack<Queen> queens){ if(row == N){ System.out.println("Find one result:"); for(Queen q : queens){ System.out.println("\t(" + q.x + "," + q.y + ")"); } return; } for(int y = 0; y < N; y++){ boolean valid = true; for(Queen queen : queens){ if( row == queen.x || y == queen.y || (queen.y - y == queen.x - row) || (queen.y - y == row - queen.x) ){ valid = false; break; } } if(valid == false){ continue; }else { Queen q = new Queen(row, y); queens.push(q); locateNextQueen(row+1, queens); queens.pop(); } } } /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub findAllResult(); } }
相关文章推荐
- 高级语言反汇编程序的函数调用过程
- [转]高级语言反汇编程序的函数调用过程
- 高级语言反汇编程序的函数调用过程
- 高级语言反汇编程序的函数调用过程
- 高级语言反汇编程序的函数调用过程
- 高级语言反汇编程序的函数调用过程
- 高级语言反汇编程序的函数调用过程
- 高级语言反汇编程序的函数调用过程
- 函数调用约定及其作用和执行过程
- 第9条:绝不在构造或析构的过程中调用虚函数
- 【百度分享】javascript中函数调用过程中的this .
- JAVA调用ORACLE的存储过程、函数的返回结果集
- 从汇编的角度分析函数调用过程(2)
- MFC应用程序中处理消息,创建窗口的过程,关闭窗口(非模态窗口),打开模式对话框等的函数调用顺序
- 自编的VB6.0调用WinAPI的模块(整合了许多函数和过程)
- alsa驱动的函数调用过程
- Xen创建 Domain过程(函数调用关系)
- c函数调用过程原理及函数栈帧分析
- Oracle创建和调用存储过程,函数,视图
- 函数调用过程(反汇编分析)