1. 使用递归打印n个字符的全排列:
void print_n_digits(int n, char * number, int index)
{
/* 检查参数合法性 */
if (n <= 0 || index < 0 || NULL == number)
{
return;
}
/* 递归边界 */
if (index >= n)
{
/* 这里可以是对每一种排列情况的处理任务,不拘泥于打印 */
std::cout << number << std::endl;
return;
}
/* 循环置index位 */
int i;
for (i = 0; i < 10; i++)
{
number[index] = '0' + i;
/* 递归设置index + 1位 */
print_n_digits(n, number, index + 1);
}
}