简化如下:
void foo(char chars[], int n);
传入的字符数组 chars 大小为 n(n>=1, <60),包含了 n 个不同的可打印字符。将 n 个字符按不同顺序拼接并输出,字符串不包含重复字符。
比如 chars = {'a', 'b', 'c'}; n = 3;
输出:
abc
acb
bac
bca
cab
cba
共 6 个。
可知需输出 n! 个字符串。
n!倒是好求出来:
int K = 1;
for (i = 1; i <= n; i++)
K *= i;
void foo(char chars[], int n);
传入的字符数组 chars 大小为 n(n>=1, <60),包含了 n 个不同的可打印字符。将 n 个字符按不同顺序拼接并输出,字符串不包含重复字符。
比如 chars = {'a', 'b', 'c'}; n = 3;
输出:
abc
acb
bac
bca
cab
cba
共 6 个。
可知需输出 n! 个字符串。
n!倒是好求出来:
int K = 1;
for (i = 1; i <= n; i++)
K *= i;