题目链接: 剑指Offer 17. 打印从1到最大的n位数
题目描述:
输入数字 n,按顺序打印出从 1 到最大的 n 位十进制数。比如输入 3,则打印出 1、2、3 一直到最大的 3 位数 999。
解法思路:
利用上题中的代码,快速计算出10^n 的值,然后依次将结果加到ans
代码:
func printNumbers(n int) []int {
var ans []int
max := pow(n)
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
}
标签:return,17,Offer,int,sum,打印,位数,ans
From: https://www.cnblogs.com/lxing-go/p/17659032.html