• 枚举排列


    生成1-n的排列。

    代码:

    #include<stdio.h>
    void pl(int n,int a[],int cur)
    {
      int i,j,ok;
      if(cur==n) //递归结束条件
      {
        for(i=0;i<n;i++)
          printf("%d",a[i]);
        printf(" ");
      }
      else
        for(i=1;i<=n;i++) //从1开始枚举
        {
          ok=1;
          for(j=0;j<cur;j++)  //如果cur之前已经出现过i
            if(a[j]==i)
              ok=0;
          if(ok)   //如果cur之前没有出现过i,那么讲i存到a[cur]
          {
            a[cur]=i;
            pl(n,a,cur+1);   //递归调用
          }
        }
    }
    int main()
    {
      int num[10000],cur=0,n;
      scanf("%d",&n);
      pl(n,num,cur);
      return 0;
    }

  • 相关阅读:
    mysql调优
    面试、。。。。
    StringBuffer 和 StringBuilder 的 3 个区别
    msql查询指定日期
    Windows 路由跟踪
    Xdebug配置
    ONVIF流媒体播放流程
    Windows 8 SP1 安装StockTrader 6.1
    使用log4c问题
    xcode插件安装
  • 原文地址:https://www.cnblogs.com/jasonlixuetao/p/4214905.html
Copyright © 2020-2023  润新知