a^b%c 小技巧
来源:互联网 发布:单片机小工具 编辑:程序博客网 时间:2024/03/29 22:01
我们知道像a^b这样的数在计算的时候因为大的增长速度很快,所以经常越界,所以很多题目在出的时候都会让我们取模。
a^b = a*a*a*a……(一共b个a相乘);我们前一篇文章在说两个数相乘的时 ,如果两个数足够大的话,这两个数相乘就会越界,使计算结果出错。所以我们在来写a^b时应该先写出两个数相乘的计算方法。
这个就不多说了,上一篇文章中有在这只是贴出代码。
__int64 mult_mod(__int64 a,__int64 b,__int64 c){a=a%c;b=b%c;__int64 ans=0;while(b){if(b&1) { ans+=a; ans=ans%c;}a<<=1;a%=c;b>>1;}return ans;}
现在我们再来说一下 a^b%c
我们在处理它时同样适用二进制和位运算来处理所以我说二进制和位运算是很重要的嘛。
__int64 pow_mod(__int64 a,__int64 b,__int64 c){a=a%c;__int64 ans=1;while(b){if(b&1) { ans =mult_mod(ans,a,c);ans%=c;}a=mult_mod(a,a,c);b>>1;}return ans;}
这和a*b%c有些类似,其实遇到这种位运算的都是这样来处理,我们学会了以后就能自己灵活的运用了。
好了。
感谢自己坚持。
1 0
- a^b%c 小技巧
- (a*b)%c 小的技巧
- java小测试-A+B>C
- hdu2096 小明A+B(C语言)
- hdu2096 小明A+B(C语言)
- 【小明A+B】
- 小明A+B
- 小明A+B
- 小明A+B
- 小明A+B
- 小鑫a+b
- 小明A+B
- 小明A +B
- (a^b)%c和(a/b)%c
- <a>标签小技巧
- SQL a>b?a:b, b>c?b:c
- 人见人爱A^B(技巧题)
- A^B mod C
- 数据科学之机器学习1:简介
- 线性表的顺序存储
- 一个在 Returns Form 里面找不到 serial number 的bug
- 编程获得CPU的主频
- Cocos2dx-3.0创建Android和Win32 新项目
- a^b%c 小技巧
- iptables 命令介绍
- java Socket 文件传输
- 理解VC中的句柄
- 【Linux】 设置使用 sudo
- Product Sparse Coding
- Wikioi 2492 树状数组+并查集(单点更新区间查询)
- 如何使用离线网站,打开离线网站
- 数据科学之机器学习2:线性回归1