暴力美学

P1706 全排列问题

%%%太强啦
by 菰冭 @ 2018-10-20 16:40:06


知道了,下一个
by tryrtj @ 2018-10-20 16:51:02


#include<bits/stdc++.h> using namespace std; int main() { int n; cin>>n; if(n==1) for(int a=1;a<=2;a++) { printf("%5d",a); printf("\n"); } if(n==2) for(int a=1;a<=2;a++) for(int b=1;b<=2;b++) if(a!=b) { printf("%5d%5d",a,b); printf("\n"); } if(n==3) { for(int a=1;a<=3;a++) for(int b=1;b<=3;b++) for(int c=1;c<=3;c++) if(a!=b&&a!=c&&b!=c) { printf("%5d%5d%5d",a,b,c); printf("\n"); } } if(n==4) { for(int a=1;a<=4;a++) for(int b=1;b<=4;b++) for(int c=1;c<=4;c++) for(int d=1;d<=4;d++) if(a!=b&&a!=c&&a!=d&&b!=c&&b!=d&&c!=d) { printf("%5d%5d%5d%5d",a,b,c,d); printf("\n"); } } if(n==5) { for(int a=1;a<=5;a++) for(int b=1;b<=5;b++) for(int c=1;c<=5;c++) for(int d=1;d<=5;d++) for(int e=1;e<=5;e++) if(a!=b&&a!=c&&a!=d&&a!=e&&b!=c&&b!=d&&b!=e&&c!=d&&c!=e&&d!=e) { printf("%5d%5d%5d%5d%5d",a,b,c,d,e); printf("\n"); } } if(n==6) { for(int a=1;a<=6;a++) for(int b=1;b<=6;b++) for(int c=1;c<=6;c++) for(int d=1;d<=6;d++) for(int e=1;e<=6;e++) for(int f=1;f<=6;f++) if(a!=b&&a!=c&&a!=d&&a!=e&&a!=f&&b!=c&&b!=d&&b!=e&&b!=f&&c!=d&&c!=e&&c!=f&&d!=e&&d!=f&&e!=f) { printf("%5d%5d%5d%5d%5d%5d",a,b,c,d,e,f); printf("\n"); } } if(n==7) { for(int a=1;a<=7;a++) for(int b=1;b<=7;b++) for(int c=1;c<=7;c++) for(int d=1;d<=7;d++) for(int e=1;e<=7;e++) for(int f=1;f<=7;f++) for(int g=1;g<=7;g++) if(a!=b&&a!=c&&a!=d&&a!=e&&a!=f&&a!=g&&b!=c&&b!=d&&b!=e&&b!=f&&b!=g&&c!=d&&c!=e&&c!=f&&c!=g&&d!=e&&d!=f&&d!=g&&e!=f&&e!=g&&f!=g) { printf("%5d%5d%5d%5d%5d%5d%5d",a,b,c,d,e,f,g); printf("\n"); } } if(n==8) { for(int a=1;a<=8;a++) for(int b=1;b<=8;b++) for(int c=1;c<=8;c++) for(int d=1;d<=8;d++) for(int e=1;e<=8;e++) for(int f=1;f<=8;f++) for(int g=1;g<=8;g++) for(int h=1;h<=8;h++) if(a!=b&&a!=c&&a!=d&&a!=e&&a!=f&&a!=g&&a!=h&&b!=c&&b!=d&&b!=e&&b!=f&&b!=g&&b!=h&&c!=d&&c!=e&&c!=f&&c!=g&&c!=h&&d!=e&&d!=f&&d!=g&&d!=h&&e!=f&&e!=g&&e!=h&&f!=g&&f!=h&&g!=h) { printf("%5d%5d%5d%5d%5d%5d%5d%5d",a,b,c,d,e,f,g,h); printf("\n"); } } if(n==9) { for(int a=1;a<=9;a++) for(int b=1;b<=9;b++) for(int c=1;c<=9;c++) for(int d=1;d<=9;d++) for(int e=1;e<=9;e++) for(int f=1;f<=9;f++) for(int g=1;g<=9;g++) for(int h=1;h<=9;h++) for(int i=1;i<=9;i++) if(a!=b&&a!=c&&a!=d&&a!=e&&a!=f&&a!=g&&a!=h&&a!=i&&b!=c&&b!=d&&b!=e&&b!=f&&b!=g&&b!=h&&b!=i&&c!=d&&c!=e&&c!=f&&c!=g&&c!=h&&c!=i&&d!=e&&d!=f&&d!=g&&d!=h&&d!=i&&e!=f&&e!=g&&e!=h&&e!=i&&f!=g&&f!=h&&f!=i&&g!=h&&g!=i&&h!=i) { printf("%5d%5d%5d%5d%5d%5d%5d%5d%5d",a,b,c,d,e,f,g,h,i); printf("\n"); } } return 0; }
by Xiang_ji @ 2018-10-27 16:43:03


直接用 ```cpp next_permutation() ``` 17行 ```cpp #include<bits/stdc++.h> using namespace std; int main() { int n,a[12],j=1; cin>>n; for(int i=1;i<=n;i++) a[i]=i,j*=i; while(j--) { for(int i=1;i<=n;i++) cout<<setw(5)<<a[i]; cout<<endl; next_permutation(a+1,a+n+1); } return 0; } ```
by Jerrylee @ 2018-11-05 19:22:10


@[PPheng](/space/show?uid=105999) 我认为楼主应该学习一下函数指针数组了……
by Bean233 @ 2019-02-07 15:42:59


+1
by αnonymous @ 2019-02-15 23:19:08


|