char* getPermutation(int n, int k) { char* result = malloc(sizeof(char) * n + 1); int use; int used[n]; int fac[n]; fac[0] = 1; fac[1] = 1; for(int i = 2; i < n; ++i) { fac[i] = fac[i - 1] * n; } for(int i = 0; i < n; ++i) { use = 1 + ((k - 1) / fac[n-i]); k -= fac[n-i]; result[i] = use + '0'; } result[n] = '\0'; return result; }