规律
/************************************************************** Problem: 1081 User: lxy8584099 Language: C++ Result: Accepted Time:212 ms Memory:1288 kb ****************************************************************/ /* 规律:当第i数是偶数时,第i-1个数是由大到小排列, 当第i数是奇数时,第i-1个数是由小到大排列, */ #include<bits/stdc++.h> using namespace std; int n,B,a[100]; void dfs(int k,int z) { if(k==n+1) { for(int i=n;i>=1;i--) { if(a[i]<10) printf("%d",a[i]); else printf("%c",a[i]-10+'A'); } printf("\n"); return ; } if(z==0) { for(int i=0;i<B;i++) { a[k]=i; if(i&1) dfs(k+1,1); else dfs(k+1,0); } } else { for(int i=B-1;i>=0;i--) { a[k]=i; if(i&1) dfs(k+1,0); else dfs(k+1,1); } } } int main() { scanf("%d%d",&n,&B); dfs(1,0); return 0; }