简单的全排列
#include<cstdio> #include<cstdlib> #include<cmath> #include<queue> #include<string.h> #include<algorithm> using namespace std; int ans, num[5], vis[5]; void dfs(int x, int step) { if(step==4) { ans++; return; } for(int i=1; i<=4; i++) { if(!vis[i]) { vis[i]=1; dfs(x*10+num[i], step+1); vis[i]=0; } } } int main() { for(int i=0; i<5; i++) num[i]=i; memset(vis, 0, sizeof(vis)); ans=0; dfs(0, 1); printf("%d\n", ans); }