当前位置: 首页 > news >正文

Acwing.875 快速幂

题目

给定n组ai , bi, pi,对于每组数据,求出akimod pi的值。

输入格式

第一行包含整数n。
接下来n行,每行包含三个整数ai , bi,pi。输出格式
对于每组数据,输出一个结果,表示aibimod pi的值。
每个结果占一行。

数据范围

1≤n ≤100000,
1 ≤as, bi, pi≤ 2* 109

##C++代码

#include <iostream>
#include <algorithm>
using namespace std;
typedef long long LL;
// a^k % p
int qmi(int a, int k, int p)
{int res = 1;while (k){if (k & 1) res - (LL)res * a % p;k >>= 1;a = (LL)a * a % p;}	return res;
}
int main()
{int n;scanf("%d"&n);while (n -- ){int a, k, p;scanf("%d%d%d",&a,&k,&p);printf("%d\n", qmi(a,k, p));}return 0;
}

java代码(非本题代码,但同样为快速幂代码,为博主系统学习之前自己查阅资料自学时用的代码)

public static long fastPower(long a,int n){int ans=1;while (n != 0) {if((n&1)!=0){ans*=a;}a*=a;n>>=1;}return ans;}

思路

快速幂的代码很短很简单,大家可以选择背诵,当然也可以理解,理解记得更久嘛。以下图片为快速幂的推导
在这里插入图片描述
在这里插入图片描述

http://www.lryc.cn/news/103928.html

相关文章:

  • 【决策树-鸢尾花分类】
  • 类与对象(中--构造函数)
  • Makefile学习1
  • 城市内涝监测预警系统,科学“智治”应对灾害
  • 切片[::-1]解析列表list表示的“非负整数加1”
  • Mac下certificate verify failed: unable to get local issuer certificate
  • Django项目启动错误
  • Vue2 第十二节 Vue组件化编程 (二)
  • pycharm 远程连接服务器并且debug, 支持torch.distributed.launch debug
  • SAP ABAP 基础语法超详细
  • html学习3(表格table、列表list)
  • 【SpringBoot】85、SpringBoot中Boolean类型数据转0/1返回序列化配置
  • hbase优化:客户端、服务端、hdfs
  • docker安装memcached
  • Redis 客户端有哪些?
  • smbms 超市订单管理系统设计与实现计划表
  • 如何解决制造业数字化改造的障碍?
  • 代码随想录算法训练营day49
  • 云计算与大数据——部署Kubernetes集群+完成nginx部署(超级详细!)
  • Maven 打包项目后,接口识别中文乱码
  • 计算机视觉项目中的文件批量操作与文件批量预处理
  • PHP数组转对象和对象转数组
  • 前后端分离开发中的传参
  • mount: wrong fs type, bad option, bad superblock报错 ubuntu
  • 【图像分类】CNN+Transformer结合系列.3
  • IDA分析实例android_crackme/EasyJNI/Transformers/pingan2
  • 拿捏--->求一元二次方程的根
  • 深入浅出之Docker Compose详解
  • spring5源码篇(12)——spring-mvc请求流程
  • 风辞远的科技茶屋:来自未来的信号枪