///******输入n,输出从1到n位最大十进制数******///
void print1ToMax(int n)
{
if(n<=0) //输入边界
{
cout<<"请输入一个正整数"<<endl;
return;
}
char *number = new char[n+1]; //存放n位数,初始化为0
memset(number,'0',n);
number[n] = '\0';
int nTakeOver = 0; //进位
bool OverFlow = false; //打印停止
while(!OverFlow)
{
for(int i=0;i<n;i++)
{
int temp = number[i]-'0'+nTakeOver;
if(i==0)
temp++;
if(temp>=10) //
{
if(i==n-1) //超出需要打印范围
{
OverFlow = true;
//break;
}
else
{
number[i] = '0'+temp-10;
nTakeOver = 1;
}
}
else
{
number[i] = '0'+temp;
nTakeOver = 0;
}
}
bool First0 = true;
for(int i=n-1;i>=0;i--)
{
if(!OverFlow && First0 && number[i]!='0')
{
First0 = false;
//cout<<number[i];
}
if(!First0)
cout<<number[i];
}
cout<<endl;
}
delete []number;
}