上一篇博客是用循环实现的,代码比较繁琐,下面用递归实现:
具体思路:
由于n位数每一位都是由0到9组成的,所以通过全排列可以实现打印所有的数,
printnumber函数:判断递归是否到达最后一位,是则说明最后一位已经被赋值,打印number即可,否则继续递归赋值给下一位(从0到9开始)
具体代码如下:
//第二种方法实现(使用递归) void printtomax2(int n) { try { if(n<=0) throw exception("参数不合法"); char *number=new char[n+1]; number[n]='