1 条题解
-
0
C :
#include<stdio.h> #include<stdlib.h> int a[10]={0}; int b[10]={0}; int n,tot=0; void outp(int a[]){ int i; for(i=1;i<=n;i++) printf("%d",a[i]); putchar('\n'); } int search(int i){ int j; for(j=1;j<=n;j++){ if(!b[j]){ a[i]=j; b[j]=1; if(i==n){ outp(a); tot++; } else{ search(i+1); } b[j]=0; } } } int main(){ scanf("%d",&n); search(1); printf("%d",tot); return 0; }
C++ :
#include<iostream> #include<cstdio> #include<cstdlib> #include<cstring> #include<cmath> using namespace std; int b[20]={0},a[20],sum=0; int i,m,n,j,k; int pl (int s) { int i,j; for (i=1;i<=n;++i) if (b[i]==0) { a[s]=i; b[i]=1; if (s==n) { sum+=1;if (sum>1) cout<<endl; for (j=1;j<=n;++j) cout<<a[j]; } else pl(s+1); b[i]=0; } } int main () { cin>>n; pl(1); cout<<endl<<sum; return 0; }
- 1
信息
- ID
- 777
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者