输入:1 打印123456789
输入:2打印123456789-99
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void printnumber(char *number){
bool isBeginning0 = true;
int nlength = strlen(number);
for(int i=0;i<nlength;++i){
if(isBeginning0&&number[i]!='0')
isBeginning0 = false;
if(!isBeginning0)
printf("%c",number[i]);
//printf("\t");
}
}
void allsort(char *number,int length,int index){
if(index==length){//index默认为0,如果长度为1的话那么就1-9直接输出
printnumber(number);//这是递归结束的标志 当index索引变成length的时候
return ;
}
for(int i=0;i<10;++i){//否则进入循环 number[0+1] 进入递归
number[index] = i+'0';
allsort(number,length,index+1);
}
}
//再次改进 使用大数 字符串数组装数 全排列递归
void printfmaxofrange3(int n){
if(n<=0) return;
//int i=0;
char *number = new char[n+1];//创造n+1的空间
//char *number = (char *)malloc(sizeof(char *)*(n+1));
number[n] = '\0';//最后一位赋值上字符串结束标识
allsort(number, n,0);//在用递归进行下一位的全排列
}
int main(){
printfmaxofrange3(3);
return 0;
}