打印从1到最大的n位数
题目:输入数字 n,按顺序打印出从 1 到最大的 n 位十进制数。比如输入 3,则打印出 1、2、3 一直到最大的 3 位数 999。
方法一:n位数的十进制数表示为10的n次方减一
from typing import List
class Solution:
def printNumbers(self, n: int) -> List[int]:
return [i for i in range(1,10**n)]
a=3
b=Solution().printNumbers(a)
print(b)
方法二:全排列解法
# -*- coding:UTF-8 -*-
# coding: utf-8
from typing import List
class Solution:
def printNumbers(self, n: int) -> List[int]:
res=[]
def dfs(index,num,len):
for i in range(10):
if index == len:
res.append(int(''.join(num)))
return
num.append(str(i))
dfs(index+1,num,len)
num.pop()
for len in range(1,n+1):
for i in range(0,10):
num=[str(i)]
dfs(1,num,len)
return res
a=Solution().printNumbers(3)
print(a)