一、题目:编写一个输出1,2,3…,n,n个数字所组成的所有排列.
第一步,先思考一些例子
第②步,分步思考若仅输出111、112、113:
想到:从113 ->114 当最后一位超过最大数字时,无效下组数字的最后位要“归零”,同时回溯到前一位“进位”
编写一个输出1,2,3…,n,n个数字所组成的所有排列.
//编写一个输出1,2,3…,n,n个数字所组成的所有排列.
int n;//n为给出的一串数中的最大数
if(t==m){//已到最后一位,找到一種排列则输出
}while(t!=0);//do..while的意思是当满足括号里面的条件时,一直执行函数体最后还有个;
//下面是迭代回溯的方法,思路及步骤直接在代码上注释叻!
int n;//n为给出的一串数中的最大数
//常用的非递归迭代过程
//第一步先把每个数组都初始化为0
//第二步,非递归迭代过程
//2.再想什么时候回溯什麼时候继续前进
a[t]=0;//这个与上面那个回溯规律是一样的