
递归与回溯
子生
这个作者很懒,什么都没留下…
展开
-
全排列(递归)
#include <stdio.h> const int maxn = 11; int n, P[maxn], hashTable[maxn] = {false}; void generateP(int index) { if(index == n + 1) { for(int i = 1;i <= n; i++) { printf("%d", P[i]);...原创 2019-03-02 16:44:00 · 128 阅读 · 0 评论 -
n皇后问题
n皇后问题是指在一个n*n的国际象棋棋盘上放置n个皇后,使得这n个皇后两辆均不在同一行、同一列,同一对角线上,求合法的方案数。 既然题目中要求每行、每列都只能放置一个皇后,如果把n列皇后所在的行号依次写出,那么就会是一个1~n的排列(反之同理),于是就可以得到n!个排列。于是就可以在全排列的基础上求解,由于当到达递归边界时表示生成了一个排列,所以需要在其内部判断是否为合法方案,即遍历每两个皇后,...原创 2019-03-02 21:19:13 · 358 阅读 · 0 评论 -
数独游戏
在9阶数方阵中,包含了81个小格,其中又再分为9个小正方形(称为宫),每宫有九小格,在游戏刚开始时,盘面上有些小格已经填了数字(称为初盘),游戏者要在空白的小格中填入1到9的数字,使得最后每行、每列、每宫都不出现重复的数字,而且每一个游戏都只有唯一的解答。 输入:一个9*9的矩阵,0表示该位置是空白。 输出:一个9*9的矩阵,格式与输入类似 #include <stdio.h&...原创 2019-03-03 06:45:12 · 442 阅读 · 0 评论 -
阶乘
描述: 阶乘:给定 n 组数,每组一个整数,输出该组数的阶乘; Input: 2 3 5 Output: 6 120 #include <stdio.h> int F(int n) { if(n == 1) { return 1; } else { return n * F(n - 1); } } int main(void) { int n; sca...原创 2019-03-03 09:10:41 · 246 阅读 · 0 评论