震惊!快速幂怎么编?省一说暴力,银牌说递归,国集听完笑了
生活随笔
收集整理的這篇文章主要介紹了
震惊!快速幂怎么编?省一说暴力,银牌说递归,国集听完笑了
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
國集:打表啊!!
題目描述
給你三個整數(shù) b,p,kb,p,kb,p,k,求 bp?mod?kb^p \bmod kbpmodk。
輸入格式
輸入只有一行三個整數(shù),分別代表 b,p,kb,p,kb,p,k
輸出格式
輸出一行一個字符串 b^p mod k=s,其中 b,p,kb, p, kb,p,k 分別為題目給定的值, sss 為運算結(jié)果。
輸入輸出樣例
輸入 #1
2 10 9
輸出 #1
2^10 mod 9=7
說明/提示
樣例輸入輸出 1 解釋
210=10242^{10} = 1024210=1024,1024?mod?9=71024 \bmod 9 = 71024mod9=7。
數(shù)據(jù)規(guī)模與約定
解析
經(jīng)典快速冪;
基本思路就是把指數(shù)轉(zhuǎn)化為二進(jìn)制;
注意有的要開long long ,處處mod k;
代碼
#include<cstdio> #include<cmath> #include<cstring> #include<algorithm> using namespace std; long long ksm(long long b,int p,int k){long long ans=1;while(p){if(p%2==1) ans=ans*b%k;b= b*b%k;p /= 2;}return ans%k; } int main(){int b,p,k;scanf("%d%d%d",&b,&p,&k);printf("%d^%d mod %d=%lld",b,p,k,ksm(b,p,k)); }總結(jié)
以上是生活随笔為你收集整理的震惊!快速幂怎么编?省一说暴力,银牌说递归,国集听完笑了的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 震惊!递推与递归竟然可以这么编!%99的
- 下一篇: 微软 Edge 浏览器测试图片预览悬浮窗