码迷,mamicode.com
首页 > 编程语言 > 详细

基本数论算法

时间:2017-05-09 21:45:27      阅读:180      评论:0      收藏:0      [点我收藏+]

标签:line   优化   bsp   isp   click   分享   event   二进制优化   lap   

dalao博客,至少很好看。。

 

因为本人数论实在渣渣,但是考试确是得考的,只好尽早学,尽早掌握。

 

最大公因数

普通gcd

技术分享
1 inline int gcd(int x,int y)
2 {
3     return y == 0 ? x : gcd(y, x % y)
4 }
View Code

二进制优化gcd

技术分享
1 inline int bsgcd(int x, int y)
2 {
3     if(x == y) return x;
4     if(x < y) x ^= y ^= x ^= y;
5     if(!(x & 1)) //x偶 y偶 gcd(x,y)=2*gcd(x/2,y/2),x偶 y奇 gcd(x,y)=gcd(x/2,y)
6          return (!(y & 1)) ? 2 * bsgcd(x >> 1, y >> 1) : bsgcd(x >> 1, y);
7      //x奇 y偶 gcd(x, y)=gcd(x,y/2)
8     return (!(y & 1)) ? bsgcd(x, y >> 1) : bsgcd(y, x - y); 
9 }
View Code

 

基本数论算法

标签:line   优化   bsp   isp   click   分享   event   二进制优化   lap   

原文地址:http://www.cnblogs.com/zhenghaotian/p/6832636.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!