思路:n位数全排列,递归
用数组来存储大数,防止溢出
#include<iostream>
using namespace std;
void print(int* num, int n){
if(!num || n<=0)
return;
int j=n;
for(int i=0;i<n;++i){ //最高位在num[0]
if(num[i]!=0){
j=i;
break;
}
}
for(int i=j;i<n;++i)
cout<<num[i];
cout<<endl;
}
void f(int *num, int l, int index){
if(!num || l<=0)
return;
if(index==l-1){
print(num,l);
return;
}
for(int i=0;i<10;++i)
{
num[index+1]=i;
f(num, l, index+1);
}
}
void print1tomaxNnum(int n){
if(n<=0)
return;
int* num=new int[n];
for(int i=0;i<n;++i)
num[i]=0;
for(int i=0;i<10;++i){
num[0]=i;
f(num,n,0);
}
delete [] num;
}
int main(){
print1tomaxNnum(2);
return 0;
}