题目:求10的全排列
源码:
#include<cstdio> #include<string.h> using namespace std;long long n,sum; int vis[10];int a[10]; void dfs(int pos) { if(pos==10) { sum++; if(sum==n) { for(int i=0; i<10; i++) PRintf("%d",a[i]); printf("/n"); } } for(int i=0; i<=9; i++) { if(!vis[i]) { a[pos]=i; vis[i]=1; dfs(pos+1); vis[i]=0; } } } int main() { while(~scanf("%lld",&n)) { memset(vis,0,sizeof(vis)); sum=0; dfs(0); } return 0; }
新闻热点
疑难解答