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

64位整数乘法

链接:登录—专业IT笔试面试备考平台_牛客网
来源:牛客网
 

题目描述

求 a 乘 b 对 p 取模的值,其中 1≤a,b,p≤10181 \leq a,b,p \leq 10^{18}1≤a,b,p≤1018。

输入描述:

第一行a,第二行b,第三行p。

输出描述:

一个整数,表示a×b mod p值。

示例1

输入

复制2 3 9

2
3
9

输出

复制6

6

思路:

由于a,b,p都很大,a*b会直接爆掉,所以要优化

利用位运算,a*b=a*1+a*2+a*4+a*8+a*16+***

有1就加

代码:

#include<bits/stdc++.h>
using namespace std;
using ll=long long;
ll a,b,p;
int main(){
    cin.tie(0);
    cin>>a>>b>>p;
    ll res=0;
    ll s=1;
    while(b){
        if(b&1)res=(res+a)%p;
        b>>=1;
        a=a*2%p;
    }
    cout<<res;
}


http://www.kler.cn/news/304511.html

相关文章:

  • 【App】React Native
  • SQLite的入门级项目学习记录(二)
  • 汽车租赁系统1.0版本
  • Linux——进程状态
  • 【React Native】第三方组件
  • 前端层面----监控与埋点
  • EasyExcel拿表头(二级表头)爬坑,invokeHeadMap方法
  • 记录一下,Vcenter清理/storage/archive空间
  • kafka 之 本地部署单机版
  • spring项目期间的学习9/11
  • 《论企业集成平台的技术与应用》写作框架,软考高级系统架构设计师
  • 数据库系统 第58节 数据库审计
  • 创意无限:五款AI绘画应用,让艺术创作更简单
  • Java基础 --- 多线程JUC,以及一些常用的设计模式总结
  • 前端form表单+ifarme方式实现大文件下载
  • OpenAI 刚刚推出 o1 大模型!!突破LLM极限
  • 医疗行业怎么节约和管理能源
  • Leetcode 每日一题:Longest Increasing Path in a Matrix
  • Python安装:Mac 使用brew 安装Python2 和 Python3
  • 古文字定位系统源码分享
  • [项目实战]EOS多节点部署
  • 深入解析 org.apache.maven.plugins
  • 解锁 macOS 剪贴板历史记录,高效复制、粘贴技巧
  • Python 爬虫入门 - 爬虫 requests 请求
  • 内存区域-面试与分析
  • IP网络广播服务平台upload接口存在任意文件上传漏洞
  • Java中等题-移掉k位数字(力扣)
  • Go websocket
  • Python基础学习(1)
  • overleaf如何下载论文的pdf