leetcode第372题 超级次方

leetcode第372题 超级次方

做题的过程中发现问题:

  1. 做过的题目,有印象,但是相同的代码还是写不出来,思路梳理的不是很清晰
  2. 很久以前的时候 就做过 pow这个题目,但是第一次想如何求幂的时候,还是会for循环一个一个的乘,
  3. 刷题太少了,还是需要多做题,感觉才会更加的强烈.

举例 3 的 152次方

思路:

  1. 3 的 一次 等于 3
  2. 3 的 15 次 等于 3的10次 乘 3的5次
  3. 3的152次等于 3的150次乘以 3的2次
func superPow(a int, b []int) int {
    a %= 1337
    res := pow(a,b[0])
    for i:= 1;i < len(b);i++{
        res = pow(res,10) * pow(a,b[i]) % 1337
    }

    return res
}

func pow(a,b int)int{
    res := 1;
    for i := b;i != 0;i /= 2{
        if i & 1 != 0{
            res = res * a % 1337
        }
        a = a * a % 1337
    }

    return res
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值