用字符串数组表示
#include<iostream>
#include<stdio.h>
void printnumber(char* number,int length);
void Print1tomaxofn(char* number,int length,int index);
void Printstart(int n){
if(n<=0)
return;
char * number = new char[n+1];
number[n]='\0';
for(int i=0;i<10;i++){
number[0]=i+'0';
Print1tomaxofn(number,n,0); //第一位上0-9
}
delete[] number;
}
void Print1tomaxofn(char* number,int length,int index){
if(index == length-1) //最后一位已完成 可打印
{
printnumber(number,length);
return;
}
for(int i=0;i<10;i++){
number[index+1]=i+'0';
Print1tomaxofn(number,length,index+1); //递归延伸至最后一位
}
return;
}
void printnumber(char* number,int length){
int firstnozero = 0;
for(int i=0;i<length;i++){
if(!firstnozero && number[i]!='0')
firstnozero =1;
if(firstnozero)
std::cout<<number[i];
}
std::cout<<'\t';
}