顺序输出到N的所有数

4-25 1,197 views

          好吧,小伙伴肯定鄙视我这么简单的题目也拿上来做太没意思了,于是快速的告诉我可以这么做:

void printer(int n)
{
	int num = 1;
	int i = 0;
	while(i++ < n)
	{
		num *= 10;

		for(i = 1; i < num; ++i)
			printf("%dt", i);
	}
}

            我们来分析分析,并没有规定n的范围,当输入的n很大的时候,我们求的最大的n位数再使用整型(int)或者长整型(long long),差不多都会溢出?也就是说我们需要考虑大数问题了,这是一个很大的陷阱,如果是作为一道面试题,那就要小心了。

             考虑新的方式,我们使用字符串模拟数组,然后解决这个大数问题。用字符串表示数字的时候,最直观的方法就是字符串里每个字符都是‘0’到‘9’之间的某一个字符,用来表示数字的一位。因为数字最大是n位的,因此我们需要一个长度为n+