372. Super Pow(LeetCode)

Your task is to calculate ab mod 1337 where a is a positive integer and b is an extremely large positive integer given in the form of an array.

Example1:

a = 2
b = [3]

Result: 8

Example2:

a = 2
b = [1,0]

Result: 1024

思路:把数字b分拆成b’ × 10 + d,其中d为b的个位

class Solution {
private:
    const int BASE = 1337;
    /* a ^ d mod 1337, 0 <= d < 10 */
    int digitPow(int a, int d) {
        a %= BASE;
        int result = 1;
        for(int i=0; i<d; ++i) {
            result = (result * a) % BASE;
        }
        return result;
    }
public:
    /* a ^ b mod 1337, b is an extremely large positive integer */
    int superPow(int a, vector<int>& b) {
        if(b.empty()) return 1;
        int d = b.back();
        b.pop_back();
        return (digitPow(digitPow(superPow(a, b), 10) * digitPow(a, d), 1));
    }
};
Math.pow()和Mathf.Pow()是两种不同的数学函数,分别用于计算幂运算。 - Math.pow()是JavaScript中的函数,用于计算一个数字的指定次幂。它接受两个参数,第一个参数是底数,第二个参数是指数。例如,Math.pow(2, 3)将返回8,因为它计算了2的3次幂。 - Mathf.Pow()是C#中的函数,用于计算一个数字的指定次幂。它同样接受两个参数,第一个参数是底数,第二个参数是指数。例如,Mathf.Pow(2, 3)将返回8。与Math.pow()不同的是,Mathf.Pow()是在Unity游戏开发中使用的函数,用于处理游戏中的数学计算。 所以,Math.pow()和Mathf.Pow()是两个不同的函数,分别用于不同的编程语言环境。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Javascript四舍五入Math.round()与Math.pow()使用介绍](https://download.csdn.net/download/weixin_38665162/13052609)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [math.pow()函数用法](https://blog.csdn.net/qq_41024101/article/details/81058364)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值