所有代码均通过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
本文提供了一种使用C++实现的方法,用于按顺序打印从1到最大的N位十进制数。例如,当输入为3时,将打印从1至999的所有整数。代码展示了如何通过字符串操作来递增数字并打印。
1302

被折叠的 条评论
为什么被折叠?



