题解 | 大数乘法

大数乘法

https://ac.nowcoder.com/acm/contest/30825/J

大数乘法 也就是 大数幂乘法

我们 可以 通过 数学关系 可得

一个关系

http://lx666.xiaopangkj.space/c++%e6%95%99%e5%ad%a6a/acwswww.png

code如下:

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int main()
{
    int t;
    cin >> t;
    while (t--) {
        ll a = 1;
        string b;
        ll p = 1;
        cin >> a;
        cin >> b;
        cin >> p;
        ll ans = 1;
        // 我们需要 逆着算 这样  可以  类比  加法 但是这里是乘法 所以 去乘以 十次幂 // 如图
        for (int i = b.size() - 1; i >= 0; i--) {
            int t = b[i] - '0';
            for (int j = 1; j <= t; j++)    ans = ans * a % p;
            ll n = 1;
            for (int j = 1; j <= 10; j++)   n = n * a % p;
            a = n;
        }
        cout << ans << endl;
    }
    return 0;
}
凉心哥哥的小宝藏 文章被收录于专栏

c++

全部评论

相关推荐

达芬骐:一个月入门,一年熟悉,三年精通,五年掌握,十年会用
点赞 评论 收藏
分享
评论
13
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务