得到1~n的全排列

来源:互联网 发布:centos 下载gcc 编辑:程序博客网 时间:2024/05/27 01:24

【程序】

#include<stdio.h>#include<algorithm>using namespace std;int main(){int a[1000],n,i,j,N;printf("***得到1~n的从小到大的全排列!***\n\n");printf("输入n:");while(scanf("%d",&n)!=EOF){printf("1~%d的全排列:\n",n);N=1;for(i=0;i<n;i++){a[i]=n-i;N*=(i+1);}for(i=0;i<N;i++){next_permutation(a,a+n);//生成下一个排列for(j=0;j<n-1;j++) printf("%d ",a[j]);printf("%d\n",a[n-1]);}printf("合计:%d个\n\n",N);printf("输入n:");}return 0;}

【运行】