关于快速幂取模的问题

#include<iostream>
using namespace std;
typedef long long LL;
LL Pow(LL a,LL b,LL p){
    a%=p;
    LL res=1;
    while(b){
        if(b&1){
            res=(res*a)%p;
            res%=p;
        }
            a=(a*a)%p;
        b>>=1;
    }
    return res;
}
int main(){
    LL a,b,p,res;
    cin>>a>>b>>p;
    res=Pow(a,b,p);
        //res%=p;    不加这个只过了80%
    cout<<res<<endl;
    return 0;
}

我有一个疑惑,明明我每次计算res之后,都会模一次p。
但是这样却只是通过了80%的数据。
然而当我在输出前让res再对p取模一次,就能ac,这是什么情况?
全部评论
考虑一下 p=1 b=0 的时候
2 回复 分享
发布于 2020-02-14 18:27

相关推荐

03-25 10:18
已编辑
蚌埠坦克学院 前端工程师
面试官脸特别黑,像我欠了他三百万…而且中间人直接消失了接近10min,而且问问题有的问题奇奇怪怪搞不懂想问啥&nbsp;最后手写题LRU众所周知代码比较长,一到一小时整点就让我别写了,第一题写的代码也没看,直接就是反问了,反问介绍业务也是有种敷衍+心不在焉的感觉…体验不咋地,评价为已经不太想去了…自我介绍拷打项目(他一直问方案设计和业界其他的方案调研,说实话我觉得我答的不好,但我又不知道该怎么答)方案设计&nbsp;技术选型&nbsp;技术方案扩展性&nbsp;稳定性登录态的设计&nbsp;jwtjwt和session&nbsp;cookie的区别为什么要用jwt做登录怎么理解session呢js事件循环机制宏任务和微任务有哪些输入一个url到页面显示的过程js加载会阻塞页面渲染吗async和defer的区别css解析会解析页面渲染吗link慢的话&nbsp;网络加载比较慢&nbsp;页面也会比较慢(omg&nbsp;我没懂他想问啥)如何获取页面的性能数据除了工具之外&nbsp;还有其他方法衡量页面的方法吗如何在全局捕获一些js异常如何解决跨域问题用了cors请求跨域&nbsp;但比正常请求慢&nbsp;可能是什么原因vue2和vue3的区别vue2的响应式设计有什么问题?为什么需要在vue3的时候做调整?vue2怎么实现对数组更新的响应式劫持?数组原生方案怎么做到对数组的更新操作带响应式的?(问的莫名其妙&nbsp;不知道想让我回答什么&nbsp;我说了数组的遍历方式他又说不是这个)要自动打印的数组的当前所有元素要怎么做怎么做到push的时候自动打印(不知道他想问啥)vue2数组的响应式原理&nbsp;怎么改变原始的push方法让他做到自动化响应式输出结果(问的奇奇怪怪算法手写题promise.allLRU反问
查看26道真题和解析
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务