题目链接地址:
题目描述:
给定一个数字N,打印从1到最大的N位数。
输入:
每个输入文件仅包含一组测试样例。
对于每个测试案例,输入一个数字N(1<=N<=5)。
输出:
对应每个测试案例,依次打印从1到最大的N位数。
样例输入:
1
样例输出:
1
2
3
4
5
6
7
8
9
解题思路:
因为N的范围是(1 <= N <= 5),所以不存在整数溢出的问题。这道题我的想法就是直接打印出[1,10^N - 1]区间内的所有整数。
AC代码如下:
#include<stdio.h>
/**
* 打印从1到最大的N位数
* @param N 输入的N代表10进制数的位数
* @return void
*/
void printOneToNBit(int N)
{
int number = 1;
int i,j;
for(i = 1;i <= N;i++)
{
number = 10 * number;
}
// 输出[1,10^N - 1]
for(j = 1;j < number;j++)
{
printf("%d\n",j);
}
}
int main()
{
int N;
scanf("%d",&N);
printOneToNBit(N);
return 0;
}
/**************************************************************
Problem: 1515
User: blueshell
Language: C
Result: Accepted
Time:40 ms
Memory:912 kb
****************************************************************/