对于搜索深度非常深或深度的情况是不固定的,不能使用枚举方法来设置嵌套循环的层数,然后,考虑使用递归的方法就可以完成搜索任务。递归是一种常用的算法,这也是搜索的实现。该方法假设一个功能或过程,直接或间接地调用自身来解决在算法设计此问题,这种方法被称为递归算法。好一个或若干个确定的递归终止条件。
一、类循环组合排列
Sample Input
:
4 2
Sample Output
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
#include<stdio.h> int n,m,mat[10]; void solve(int l) { if(l>=n) { for(int i=0;i<n;++i) printf("%d",mat[i]); puts(""); return; } for(int i=0;i<m;++i) { mat[l]=i; solve(l+1); } } int main() { while(scanf("%d%d",&n,&m)!=EOF) { solve(0); } return 0; }
版权声明:本文博客原创文章,博客,未经同意,不得转载。
本文转自mfrbuaa博客园博客,原文链接:http://www.cnblogs.com/mfrbuaa/p/4652347.html,如需转载请自行联系原作者