题解 | #快速幂#

快速幂

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

import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        int q = in.nextInt();
        long[][] nums = new long[q][3];
        for(int i = 0;i < q;i++){
            nums[i][0] = in.nextInt();
            nums[i][1] = in.nextInt();
            nums[i][2] = in.nextInt();
        }
        
        // 由公式(a*b)^ c = a^c * b^c
        for(int i = 0;i < q;i++){
           long res = 1;
           while(nums[i][1] > 0){
                if(nums[i][1] % 2 == 1){
                    nums[i][1]--;
                    res = res * nums[i][0] % nums[i][2];
                }
                nums[i][1] /= 2;
                nums[i][0] = nums[i][0] * nums[i][0] % nums[i][2];
           }
           System.out.println(res);
        }
    }
}

全部评论

相关推荐

10-22 12:03
山东大学 Java
程序员小白条:26届一般都得有实习,项目可以随便写的,如果不是开源社区的项目,随便包装,技术栈也是一样,所以本质应该找学历厂,多投投央国企和银行,技术要求稍微低一点的,或者国企控股那种,纯互联网一般都得要干活
应届生简历当中,HR最关...
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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