题目 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;
    }
}
相关推荐
三川69813 小时前
排序算法介绍
数据结构·算法·排序算法
laplace012314 小时前
Java八股—MySQL
java·mysql·oracle
zhangyao94033015 小时前
关于js导入Excel时,Excel的(年/月/日)日期是五位数字的问题。以及对Excel日期存在的错误的分析和处理。
开发语言·javascript·excel
熙客15 小时前
TiDB:分布式关系型数据库
java·数据库·分布式·tidb
骑驴看星星a15 小时前
【Three.js--manual script】4.光照
android·开发语言·javascript
你想考研啊16 小时前
linux安装jdk和tomcat和并自启动
java·linux·tomcat
星释16 小时前
Rust 练习册 :Leap与日期计算
开发语言·后端·rust
智驱力人工智能18 小时前
基于视觉分析的人脸联动使用手机检测系统 智能安全管理新突破 人脸与手机行为联动检测 多模态融合人脸与手机行为分析模型
算法·安全·目标检测·计算机视觉·智能手机·视觉检测·边缘计算
悟能不能悟18 小时前
java的java.sql.Date和java.util.Date的区别,应该怎么使用
java·开发语言
2301_7644413318 小时前
水星热演化核幔耦合数值模拟
python·算法·数学建模