#include<stdio.h>
#include<stdlib.h>
int factorial(int n){
int num = 1;
while(n > 0){
num *= n--;
}
return num;
}
void deleteitem(char *nums,int numsize,int in){
while(in < numsize - 1){
nums[in] = nums[in+1];
in++;
}
}
char * getPermutation(int n, int k){
int i, factor;
char nums[n];
char *ret = (char *)calloc(10,sizeof(char));
for(i=0; i<n; i++)
nums[i]= i+1;
k--;
for(i=0; i<n; i++){
factor = factorial(n-i-1);
ret[i] = nums[k/factor] + '0';
deleteitem(nums, n-i ,k/factor) ;
k = k %factor;
}
return ret;
}
int main(){
int n,k;
n = 4;
k = 10;
char *nums = getPermutation(n,k);
for(int i=0; i<n; i++)
printf("%c ",nums[i]);
free(nums);
return 0;
}