打印从1到最大的n位数(剑指Offer-17)
题面
输入数字
n
,按顺序打印出从 1 到最大的 n 位十进制数。比如输入 3,则打印出 1、2、3 一直到最大的 3 位数 999。
示例
示例 1:
1输入: n = 1 2输出: [1,2,3,4,5,6,7,8,9]
限制
- 用返回一个整数列表来代替打印
- n 为正整数
思路
简简单单for循环。
代码
1class Solution {
2 int pow(int a, int b){
3 int res = 1;
4 while(b){
5 if(b&1) res*=a;
6 a *= a;
7 b >>= 1;
8 }
9 return res;
10 }
11public:
12 vector<int> printNumbers(int n) {
13 int last = pow(10,n)-1;
14 vector<int> ans(last);
15 for(int i=0; i<last; i++){
16 ans[i] = i+1;
17 }
18 return ans;
19 }
20};