面试题12:

题目描述:
给定一个数字N,打印从1到最大的N位数。

输入:
每个输入文件仅包含一组测试样例。
对于每个测试案例,输入一个数字N(1<=N<=5)。

输出:
对应每个测试案例,依次打印从1到最大的N位数。

样例输入:
1
样例输出:
1
2
3
4
5
6
7
8
9

题意:如题。九度上非大数,原意为大数(n不限制).由于只有一组,因此每次输入一个n,处理一次。

否则,可以利用二维数组,或者字符串数组string[ MAX ]。第一维表示第几个数,第二维表示相应的数(错误理解,第一维能存的话,就不是大数了,适用于非本题题意的大数处理);
非大数:

/* ***********************************************
Author        :bo-jwolf
Created Time  :2015年02月09日 星期一 19:35:27
File Name     :1515.cpp
************************************************ */

#include <stdio.h>
#include <string.h>
#include <iostream>
#include <algorithm>
#include <vector>
#include <queue>
#include <set>
#include <map>
#include <string>
#include <math.h>
#include <stdlib.h>
#include <time.h>
using namespace std;

int main()
{
    //freopen("in.txt","r",stdin);
    //freopen("out.txt","w",stdout);
	int n;
	while( scanf( "%d", &n ) != EOF ){
		long long number = pow( 10, n );
		for( int i = 1; i < number; ++i ){
			printf( "%d\n", i );
		}
	}	
    return 0;
}

大数:

/* ***********************************************
Author        :bo-jwolf
Created Time  :2015年02月09日 星期一 19:38:49
File Name     :1515a.cpp
************************************************ */

#include <stdio.h>
#include <string.h>
#include <iostream>
#include <algorithm>
#include <vector>
#include <queue>
#include <set>
#include <map>
#include <string>
#include <math.h>
#include <stdlib.h>
#include <time.h>
using namespace std;
const int MAX = 1005;
string str;
int num[ MAX ], k = 0, n;
void Deal( int *num ){
	int i = 0;
	num[ i ]++;
	while( num[ i ] > 9 ){
		num[ i + 1 ]++;
		num[ i ] %= 10;
		i++;
	}
//	cout << num[ k ] << endl;
}

void Print( int *num ){
//	cout << num[ k ] << endl;
	k = n;
	while( !num[ k ] )
		k--;
	for( int i = k; i >= 0; --i ){
		printf( "%d", num[ i ] );
	}
	printf( "\n" );
}

int main()
{
    //freopen("in.txt","r",stdin);
    //freopen("out.txt","w",stdout);
 	while( scanf( "%d", &n ) != EOF ){
		memset( num, 0, sizeof( num ) );
		int k = 0;
		num[ 0 ] = 0;
		while( true ){
			Deal( num );
			if( !num[ n ] )
				Print( num );
			else
				break;
		}
	}		
    return 0;
}