首页 > 其他分享 >题目 2154: 取余运算

题目 2154: 取余运算

时间:2024-03-16 21:59:51浏览次数:19  
标签:题目 底数 long 2154 nextInt ans sc 取余 public

题目描述:

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

解题思路:

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

代码:

分治算法

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;
    }
}

标签:题目,底数,long,2154,nextInt,ans,sc,取余,public
From: https://blog.csdn.net/weixin_64443786/article/details/136633129

相关文章

  • Java题目-数组计算-中位数- 圆类的构造-时间计算-学生类设计
    第一题:数组计算题目描述:编写Java程序,计算两个整型数组的和、差、乘积、商的整数部分及大小关系。定义如下:和:两个数组对应元素的和,若元素缺失,则补0;差:第一个数组和第二个数组对应元素的差,若元素缺失,则补0;乘积:两个数组对应元素的积,若元素缺失,则计0;除:第一个数组元素除以第二......
  • 考研模拟面试-题目【攻略】
    考研模拟面试-题目【攻略】前言版权推荐考研模拟面试-题目前面的问题通用问题专业题数据结构计算机网络操作系统数据库网络安全手写题数据结构操作系统计算机网络代码题基础代码题其他代码题后面的问题补充题目最后前言2023-10-1912:00:57以下内容源自《考研模......
  • JVM工作原理与实战(四十三):JVM常见面试题目
    专栏导航JVM工作原理与实战RabbitMQ入门指南从零开始了解大数据目录专栏导航前言一、JVM常见面试题目1.什么是类加载器,有哪些常见的类加载器?2.什么是双亲委派机制,以及如何打破双亲委派机制?3.如何判断堆上的对象没有被引用?4.JVM中都有哪些引用类型?5.ThreadLoca......
  • C语言:洛谷数组题目(2)(冰雹猜想,校门外的树,旗鼓相当的对手)
    目录1.前言2.三则题目1.冰雹猜想1.题目描述2.输入格式3.输出格式4.题解2.校门外的树1.题目描述2.输入格式3.输出格式4.题解3.旗鼓相当的对手1.题目描述2.输入格式3.输出格式4.题解3.小结1.前言今天小蒟蒻继续为大家分享洛谷数组题单题解,一共三道题,希望大......
  • 信息学奥赛一本通题目解析:2086:【22CSPJ普及组】乘方(pow)
    2086:【22CSPJ普及组】乘方(pow)题目描述小文同学刚刚接触了信息学竞赛,有一天她遇到了这样一个题:给定正整数aaa和b......
  • 《算法竞赛入门经典 第2版》 数学题目集
    例题10-1巨大的斐波那契数!(ColossalFibonacciNumbers!,UVa11582)巨大的斐波那契数!ColossalFibonacciNumbers!-洛谷例题10-2不爽的裁判(DisgruntledJudge,NWERC2008,UVa12169)不爽的裁判DisgruntledJudge-洛谷NOI数学学习相关书籍及视频等资料(不包......
  • 第十四届蓝桥杯C++B组编程题题目以及题解
    a.冶炼金属(二分)思路:设任意一条冶炼记录投入金属数量为a,产出金属为b.对于每一条冶炼记录我们都可以得到一个转换率V的范围:b<=a/v<b+1即a/b<=v<a/(b+1)为什么是b+1呢?因为既然能产出b个金属,也就意味着一定不能产出b+1个,所以a/v<b+1每一条记录都可以得到v的一个区间,我......
  • Python毕业设计 人工智能与大数据专业毕业设计(论文)选题题目
    目录前言毕设选题人工智能大数据选题迷茫选题的重要性更多选题指导最后 前言  ......
  • 7-15 报数(留个题目,还没写代码)
    7-15报数分数10作者王秀单位福州大学输入两个正整数n和m((1<m<n<=50)),有n个人围成一圈,按顺序从1到n编号。从第一个人开始报数,报数m的人退出圈子,下一个人从1开始重新报数,报数m的人退出圈子。如此循环,直到留下最后一个人。请按退出顺序输出退出圈子的人的编号......
  • 【题目】ccf csp 202309-3 梯队求解
    题目大意:给出需要求解的逆波兰表达式(后缀表达式),包含多个变量,现在每一次查询,给出所有变量的值,询问对于给定的变量其函数偏导值为多少。(仅包含乘、加减运算)(例如,对于表达式:x1x1x1*x2+*可转化为(x1*x1+x2)*x1对x1求偏导后变为(2*x1+x2)+(x1*x1+x2)带入x1=......