题目 2154: 取余运算

题目描述:

输入b,p,k的值,求b^p mod k的值。其中b,p,k×k为长整型数。

解题思路:

  • 如果指数为奇数,那么结果乘以当前的底数,指数除以2(整除运算)。
  • 如果指数为偶数,那么底数变为原来底数的平方,指数除以2。

代码:

分治算法

java 复制代码
package lanqiao;

import java.math.BigInteger;
import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        long b = sc.nextInt();
        long p = sc.nextInt();
        long k = sc.nextInt();

        System.out.println(b + "^" + p + " mod " + k + "=" + f(b,p,k));

    }
    public static long f(long b,long p,long k)
    {
        long ans = 1;
        while(p > 0)
        {
            if(p % 2 == 1)
                ans = ans * b % k;
            b = b * b % k;
            p /= 2;
        }
        return ans;
    }
}
相关推荐
coffee_baby几秒前
享元模式详解:解锁高效资源管理的终极武器
java·spring boot·mybatis·享元模式
梦想科研社2 分钟前
【无人机设计与控制】四旋翼无人机轨迹跟踪及避障Matlab代码
开发语言·matlab·无人机
Yan-英杰2 分钟前
Encountered error while trying to install package.> lxml
开发语言·python·pandas·pip·issue
搞点夜点心5 分钟前
算法课习题汇总(2)
算法
卡卡_R-Python6 分钟前
海洋气象编程工具-Python
开发语言·python
爱学习的真真子8 分钟前
菜鸟也能轻松上手的Java环境配置方法
java·开发语言
大二转专业11 分钟前
408算法题leetcode--第10天
考研·算法·leetcode
.别止步春天.11 分钟前
Python中lambda表达式的使用——完整通透版
数据结构·python·算法
C7211BA14 分钟前
使用随机森林模型在digits数据集上执行分类任务
算法·随机森林·分类
RaidenQ18 分钟前
2024.9.20 Python模式识别新国大EE5907,PCA主成分分析,LDA线性判别分析,GMM聚类分类,SVM支持向量机
python·算法·机器学习·支持向量机·分类·聚类