zoukankan      html  css  js  c++  java
  • 递归算法之全组合排列

    输入:

    给定数据数N,然后输入n个数字,找出全部的排列数。

    输出:

    输出全部的排列数。

    例子输入:

    3

    1 2 3

    例子输出:

    123

    132

    213

    231

    312

    321

    思路:

    也是递归求解的典例。

    代码例如以下:

    <span style="font-size:14px;">#include<stdio.h>
    #include<string.h>
    int a[110],b[110],c[110];
    int n;
    void res(int len)
    {
    	if(len>=n)//递归结束条件 
    	{
    		for(int i=0;i<n;i++)
    		printf("%d",c[i]);
    		puts("");
    		return ;
    	}
    	for(int i=0;i<n;i++)
    	{
    		if(!b[i])//通过b[i]来推断是否出现过一次 
    		{
    			b[i]=1;
    			c[len]=a[i];//将值复制给数组C c[i]用于输出数据 
    			res(len+1);//进行一系列递归 
    			b[i]=0;//保证后面的能输出多组数据 
    		}
    	}
    }
    int main()
    {
    	while(~scanf("%d",&n))
    	{
    		for(int i=0;i<n;i++)
    		scanf("%d",&a[i]);//a[i]用来临时存储元素 
    		memset(b,0,sizeof(b));//初始化 ,b[i]用来标记 
    		res(0);
    	}
    	return 0;
    }</span>



  • 相关阅读:
    requests
    urllib
    爬虫初入
    Django之admin
    Django之FileField字段
    边学边练之博客园----登录验证
    边学边练之博客园----设计表
    Django之中间件
    计算机基础
    win—命令行窗口一层一层的打开文件
  • 原文地址:https://www.cnblogs.com/wgwyanfs/p/6826650.html
Copyright © 2011-2022 走看看