zoukankan      html  css  js  c++  java
  • CH0101 a^b、 CH0102 64位整数乘法(快速幂、快速乘)【模板题】

    题目链接:传送门    //a^b

          传送门    //64位整数乘法

    题目:

    描述
    
    求 a 的 b 次方对 p 取模的值,其中 1≤a,b,p≤10^9
    输入格式
    
    三个用空格隔开的整数a,b和p。
    输出格式
    
    一个整数,表示a^b mod p的值。
    样例输入
    
    2 3 9
    
    样例输出
    
    8
    View Code

    模板:(快速幂)

    #include <bits/stdc++.h>
    
    using namespace std;
    
    int fpow(int a, int b, int p) {
        int ans = 1;
        for (; b; b >>= 1) {
            if (b&1)
                ans = (1LL * ans * a) % p;
            a = (1LL * a * a) % p;
        }
        return ans%p;
    }
    
    int main()
    {
        int a, b, p;
        cin >> a >> b >> p;
        int ans = fpow(a, b, p);
        cout << ans << endl;
        return 0;
    }
    View Code

    题目:

    描述
    
    求 a 乘 b 对 p 取模的值,其中 1≤a,b,p≤10^18。
    输入格式
    
    第一行a,第二行b,第三行p。
    输出格式
    
    一个整数,表示a*b mod p的值。
    样例输入
    
    2
    3
    9
    
    样例输出
    
    6
    View Code

    模板:(快速乘)

    #include <bits/stdc++.h>
    
    using namespace std;
    typedef long long ll;
    
    ll fmul(ll a, ll b, ll p)
    {
        ll ans = 0;
        for (; b; b >>= 1) {
            if (b&1)
                ans = (ans + a) % p;
            a = (a+a)%p;
        }
        return ans%p;
    }
    
    int main()
    {
        ll a, b, p;
        cin >> a >> b >> p;
        ll ans = fmul(a, b, p);
        cout << ans << endl;
        return 0;
    }
    View Code
  • 相关阅读:
    JSON.stringify() & JSON.parse() 实现
    节流(Throttling) & 防抖(Debouncing)
    instanceof实现
    new实现
    如何实现深拷贝
    #FFF转换为rgba(255,255,255,1)
    hdcms v5.7.0学习笔记
    Laravel5.x 封装的上传图片类
    JQ 封装全选函数
    双击 ajax修改单元格里的值
  • 原文地址:https://www.cnblogs.com/Lubixiaosi-Zhaocao/p/9958570.html
Copyright © 2011-2022 走看看