zoukankan      html  css  js  c++  java
  • 置换(用递归的方法执行置换)

    /置换(用递归的方式执行交换)
    #include <stdio.h>
    //利用宏定义swap方法,交换
    #define swap(x,y,t)((t)=(x),(x)=(y),(y)=(t))
    //声明一个函数
    void perm(char *list,int k,int m);
    int count;
    int main(void)
    {
    char list[]="abc";
    perm(list,0,2);
    //置换的次数
    printf("总共有%d中排列方式。 ",count);
    return 0;
    }
    void perm(char *list,int k,int m)
    {
    char temp;
    int i;
    //用于判断
    if(k==m)
    {
    printf("%s ",list);
    count++;
    }
    else
    {
    //用于执行置换
    for(i=k;i<=m;i++)
    {
    //交换位置
    swap(list[i],list[k],temp);
    //置换
    perm(list,k+1,m);
    //每次置换后在恢复原来的位置
    swap(list[i],list[k],temp);

    }
    }
    /**a开头的,后面bc的交换
    perm(list,1,2);
    /b开头的,后面ac的交换
    swap(list[0],list[1],temp);
    perm(list,1,2);
    swap(list[0],list[1],temp);
    /c开头的,后面ab的交换
    swap(list[0],list[2],temp);
    perm(list,1,2);
    swap(list[0],list[2],temp);**/

    }

  • 相关阅读:
    回话处理程序(17)
    PDO介绍(16)
    MySQL基础
    保护网站安全(13)
    身份验证(12)
    处理HTML表单(11)
    错误和异常处理(7)
    jQuery 选择器
    官网jquery压缩版引用地址:
    HTML mate标签
  • 原文地址:https://www.cnblogs.com/caocx/p/5996733.html
Copyright © 2011-2022 走看看