递归算法之类循环组合排列

输入:

给定数据,输入n,m.分别代表位数,可能取到的值。

输出:

输出全部可能的数字。

例子输入:

4 2

例子输出:

0000

0001

0010

0011

0100

0101

0110

0111

1000

1001

1010

1011

1100

1101

1110

1111

题目分析:

这是一种典型的递归算法-------类递归组合排列。

代码例如以下:

<span style="font-size:14px;">#include<stdio.h>
int n,m,i;
int a[11];
void solve(int l)
{
	if(l>=n)//自身递归跳出条件。 
	{
		for(i=0;i<n;i++)
		printf("%d",a[i]);
		puts("");
		return;
	}
	for(i=0;i<m;i++)
	a[l]=i;//用a[l]来存储可能区间的值 
	solve(l+1);//每次都能向前进一步 
}
int main()
{
	while(~scanf("%d%d",&n,&m))
	solve(0);
	return 0;
}</span>

原文地址:https://www.cnblogs.com/zfyouxi/p/4056303.html