康托展开:
#includeusing namespace std;int board[10]{1,1,2,6,24,120,720,5040,40320,362880};//0-9的阶乘 bool book[10]; //标记数是否已经出现过 int main(){ string s; cin>>s; int sum = 1; for(int i=0 ; i
康托逆展开:
#includeusing namespace std;int board[10]{1,1,2,6,24,120,720,5040,40320,362880};//0-9的阶乘 bool book[10];//标记数是否已经出现过int main(){ string s; cin>>s; int N; cin>>N; N--; for(int i=s.length() ; i>=1 ; i--){ int mid = N/board[i-1]+1; for(int i=1 ; i<=mid ; i++){ if(book[i])mid++; } book[mid] = true; cout<