【C++】gcd函数的写法
gcd函数简介
大公因数(英语:highest common factor,hcf)也称最大公约数(英语:greatest common divisor,gcd)是数学词汇,指能够整除多个整数的最大正整数。而多个整数不能都为零。例如8和12的最大公因数为4。
求两个整数最大公约数主要的方法:
1.穷举法:分别列出两整数的所有约数,并找出最大的公约数。
2.素因数分解:分别列出两数的素因数分解式,并计算共同项的乘积。
3.短除法:两数除以其共同素因数,直到两数互素时,所有除数的乘积即为最大公约数。
4.辗转相除法:两数相除,取余数重复进行相除,直到余数为0时,前一个除数即为最大公约数。
相关介绍: https://blog.csdn.net/Ljnoit/article/details/104730787
gcd函数写法
C++写gcd函数有几种写法,下面介绍几种。
这些代码我都对拍过,请大家放心使用。
1.while循环(常速)
此段代码a、b可以为0
inline int gcd(int a,int b)
{ int r; while(b>0){ r=a%b; a=b; b=r; } return a;
}
2.三目运算符(较快)
此段代码a、b可以为0
inline int gcd(int a,int b)
{ return b>0 ? gcd(b,a%b):a;
}
3.位运算(超快)
此段代码a、b不能为0
inline int gcd(int a,int b)
{ while(b^=a^=b^=a%=b); return a;
}
4.if+while+位运算(超快)
此段代码a、b可以为0
inline int gcd(int a,int b)
{ if(b) while((a%=b) && (b%=a)); return a+b;
}
5.辗转相除法(较快)
此段代码a、b不能为0
inline int gcd(int a,int b)
{ if(a%b==0) return b; else return (gcd(b,a%b));
}
6.gcd库函数(较慢)
此段代码a、b可以为0
#include <algorithm>
inline int gcd(int a,int b) { return __gcd(a,b);
}
————————————————
版权声明:本文为CSDN博主「Ljnoit」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Ljnoit/article/details/99319849
【C++】gcd函数的写法相关推荐
- gcd函数(最大公约数)(最大公因数)
gcd函数即为实现求两数最大公约数(最大公因数)的函数 求两个整数最大公约数主要的方法: 1.穷举法:分别列出两整数的所有约数,并找出最大的公约数. 2.素因数分解:分别列出两数的素因数分解式,并计算 ...
- 最大公约数gcd函数简介
gcd函数简介 最大公因数(英语:highest common factor,hcf)也称最大公约数(英语:greatest common divisor,gcd)是数学词汇,指能够整除多个整数的最大 ...
- [js] 举例说明js立即执行函数的写法有哪些?
[js] 举例说明js立即执行函数的写法有哪些? 1.(function(){ //code }())2.!function(){ //code }()3.!(function(){ //code } ...
- 在setTimeout或者ajax等异步方法中回调函数的写法与调用
常常在setTimeout或者ajax中产生异步代码执行,执行的是回调函数,那么回调函数怎么写呢?这要跟回调函数的函数体内写法有关: 回调函数的函数体内return返回值不是函数: 回调函数的函数体内 ...
- 从两道基础二分算法题谈check函数的写法
第一题:愤怒的牛 loj链接 两道题目都是基础二分的模板题,先看第一题,题意为总共有nnn间牛舍,mmm头牛,要将mmm头牛安排在nnn间牛舍,为防止牛互相攻击,使两头牛之间的最小距离最大!最大! 最 ...
- Swop函数的写法及常见错误示例
Swop函数的写法及常见错误示例 数据交换在编程中十分常见,为方便起见,我们可以将其编写为一个交换函数,在需要时引用函数即可.但需要注意的是,子函数的改变想要影响父函数的数据,必须传指针和解引用.下面 ...
- 中gcd函数_欧拉函数φ(n)的计算及欧拉定理
1 欧拉函数定义 在数论中,对正整数n,欧拉函数φ(n)是小于或等于n的正整数中与n互质的数的数目.此函数以其首名研究者欧拉命名,它又称为φ函数(由高斯所命名)或是欧拉总计函数(totient fun ...
- Vue中的箭头函数=>目的是用来简化函数的写法的分为三部分:被赋值的变量 传入的参数 返回的数据
对于多个参数:省略函数体的方法 复杂写法 (参数1, 参数2, -, 参数N) => { 函数声明 }var f = (num1, num2) => { return num1*num2 ...
- C++11标准出现后,函数指针写法汇总
最传统的写法,即C++11之前的函数指针的写法,利用typedef关键字: 如: typedef int(*myFun)(int, int); 调用示例: int sum(int a, int b) ...
- MySQL的存储过程和函数简单写法
什么是存储过程 简单的说,就是一组SQL语句集,功能强大,可以实现一些比较复杂的逻辑功能,类似于JAVA语言中的方法: ps:存储过程跟触发器有点类似,都是一组SQL集,但是存储过程是主动调用的,且功 ...
最新文章
- Linux tail 命令详解
- MySQL8.0 - 新特性 - 临时表改进
- (3) 百度2011研发工程师笔试卷
- python代码学习-数据处理图片加遮挡、噪声、模糊
- 论文浅尝 | 使用循环神经网络的联合事件抽取
- php curl跨域cookie_PHP curl模拟文件上传(接口请求实现跨域文件中转)
- 【Android】Error:Execution failed for task ':app:lint'
- frpc客户端 linux安装,centos配置frp服务端,与客户端
- TypeError: float() argument must be a string or a number, not 'datetime.date'
- 基于机智云平台的微电网光伏模块数据采集装置的设计
- 如何用python修改pdf内容_如何利用python将pdf文件转化为txt文件?
- 竟领先15% 解密飞行堡垒吃鸡重装版强悍性能
- 小红书穿搭博主一万粉丝报价是多少?博主如何提高报价
- 基于JAVA+SpringBoot+Mybatis+MYSQL的相册管理系统
- 宁撞金钟一下,不打破鼓三千,IT人要有志气,要进就进大的好的公司
- html5音频文件生成波形图代码,使用wavesurfer.js显示mp3 audio音频的波形图
- 笔记本和linux台式共享网络,怎么把笔记本的网络共享给台式电脑
- CCF大会腾源会专场即将召开,聚焦基础软件与开发语言未来发展
- 人工智能:为什么很多机器学习和深度学习的论文复现不了?
- 智能手机防盗软件测试自学,用谁找回手机几率最大?手机防盗软件功能大PK
热门文章
- cmd“不是内部或外部命令,也不是可运行的程序或批处理文件”
- 衡量计算机储存容量的常用计量单位是,衡量存储器的单位是什么
- 内存卡提示要格式化怎么办?
- loadrunner Lr_类函数之 lr_rendezvous()
- 蓝桥杯java技巧总结
- e书制作工具和反编译工具
- html和flash播放器区别,flash播放器和一般播放器有什么区别
- R语言安装NLP自然语言分析包
- Citrix桌面虚拟化基础搭建教程(持续更新)
- sqlserver如何修改服务器排序规则,修改sqlserver2008数据库的排序规则 (转)