题解 | #快速幂#

快速幂

https://www.nowcoder.com/practice/defdedf4fe984c6c91eefa6b00d5f4f0

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.StreamTokenizer;
import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StreamTokenizer st = new StreamTokenizer(br);
        st.nextToken();
        int q = (int)st.nval;
        while (q > 0) {
            st.nextToken();
            long a = (long)st.nval;
            st.nextToken();
            long b = (long)st.nval;
            st.nextToken();
            long p = (long)st.nval;
            long base = 1;
            while (b > 0) {
                if (b % 2 == 1) {//将单数提出来单独算 ,以便后面分治
                    base = base * a;
                    base %= p;
                }
                a = a * a % p;
                b /= 2;
            }
            System.out.println(base % p);
            q--;
        }
    }
}

全部评论

相关推荐

兄弟们,实习都是在接各种api,该怎么包装简历
仁者伍敌:感觉我自己做小项目也是各种api啊,我要怎么包装简历
点赞 评论 收藏
分享
05-22 17:07
已编辑
门头沟学院 Java
程序员牛肉:都啥时候了还jb打蓝桥杯呢,有限找实习。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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