所有代码均通过G++编译器测试,仅为练手纪录。
//面试题12:打印1到最大的N位数
//题目:输入数字N,按顺序打印出从1到最大的N位十进制数。比如输入3,则打印出1,2,3一直到最大的三位数即999。
//面试题12:打印1到最大的N位数
//题目:输入数字N,按顺序打印出从1到最大的N位十进制数。比如输入3,则打印出1,2,3一直到最大的三位数即999。
void PrintNumber(int n)
{
string strNum(n,' ');
char *pNum = const_cast<char *>(strNum.c_str());
pNum[n] = '0';
int nCount = 0;
for(;;)
{
for(int i = n;i>=0;/*--i*/)
{
//如果该位不是数字9,就直接累加;如果是9,则进行进位。
if('9' != pNum[i] )
{
++pNum[i];
LogInfo("number:%s",pNum);
break;
}
pNum[i--] = '0';
if( (' ' == pNum[i]) )
{
if(++nCount == n)
{
return;
}
pNum[i] = '0';
}
}
}
}
ZhaiPillary
2016-12-24