借助前面的二次幂,可以快速算出 10 的 n 次方的值,从而确定最大值
func printNumbers(n int) []int {
max := pow(n)
ans := []int{}
for i := 1; i < max; i++ {
ans = append(ans, i)
}
return ans
}
func pow(n int) int {
if n == 0 {
return 1
}
if n == 1 {
return 10
}
sum := pow(n/2)
if n % 2 == 1 {
return sum * sum * 10
}
return sum * sum
}
func printNumbers(n int) []int {
num := int(math.Pow10(n))
var ans []int
for i := 1; i < num; i++ {
ans = append(ans, i)
}
return ans
}