读书人

IT公司面试题收集整理-C相干-八皇后和

发布时间: 2013-03-06 16:20:31 作者: rapoo

IT公司面试题收集整理---C相关---八皇后和斐波那契数列【递归的常用小程序】
1.N!的递归算法

#include <stdio.h>#define ROW 8#define COL 8#define NUM 8int a[ROW][COL];int k = 0;int put( int n){int i, j;//输出八皇后棋盘if( n > NUM){printf( "----------%06d----------\n", ++k);for( i = 0; i < ROW; i ++){for( j = 0; j < COL; j ++)printf( "%s  ", a[i][j] == 1 ? "○" : "●");printf( "\n\n");}printf( "--------------------------\n\n");return -1;}// 尝试行中的每个位置for( j = 0; j < COL; j ++){int flag = 0;for( i = 0; i < n - 1; i ++){// 是否同列if( a[i][j] == 1){flag = 1;break;}// 是否左斜角if( j - ( n - 1 - i) >= 0 && a[i][j - ( n - 1 - i)] == 1){flag = 1;break;}// 是否右斜角if( j + ( n - 1 - i) < COL && a[i][j + ( n - 1 - i)] == 1){flag = 1;break;}}if( flag == 0){a[n-1][j] = 1;if( put( n + 1) == -1){a[n-1][j] = 0;}elsereturn 0;}}return -1;}int main(){put(1);return 0;}


读书人网 >编程

热点推荐