zoukankan      html  css  js  c++  java
  • N个数的排列算法

    #include <stdio.h>

    int n = 0;
    //交换两个数
    void swap(int *a, int *b)
    {
    int m;
    m = *a;
    *a = *b;
    *b = m;
    }
    void perm(int list[], int k, int m)
    {
    int i;
    if(k > m)
    {
    for(i = 0; i <= m; i++)
    printf("%d ", list[i]);
    printf(" ");
    n++;
    }
    else
    {
    for(i = k; i <= m; i++)
    {
    swap(&list[k], &list[i]);
    perm(list, k + 1, m);
    swap(&list[k], &list[i]);
    }
    }
    }
    int main()
    {
    int i;
    int j=0;
    /*int list[] = {1, 2, 3, 4};
    perm(list, 0, 2); */
    int list[100];
    printf("请输入N:");
    scanf("%d",&i);
    for(j;j<i;j++)
    {
    list[j]=j+1; //0-i
    }
    perm(list,0,i-1);
    printf("total:%d ", n);
    scanf("%d",&i);
    return 0;
    }

    感谢来访,共同学习!
  • 相关阅读:
    Vue 04
    Vue小练习 03
    Vue 03
    Vue小练习 02
    Vue 02
    Vue 小练习01
    Vue 01
    Django 11
    JUC(一):volatile关键字
    Kubernetes【K8S】(五):Service
  • 原文地址:https://www.cnblogs.com/dingxiaowei/p/3147426.html
Copyright © 2011-2022 走看看