runxinzhi.com
首页
百度搜索
辗转相除
节选自:(
http://zhidao.baidu.com/question/5920943.html
)
若 a
=
bq
+
r,则a和b的最大公因子等于b和r的最大公因子绝对值(都为整数)
比如求4864和3458的最大公因子:
4864
=
1
*
3458
+
1406
3458
=
2
*
1406
+
646
1406
=
2
*
646
+
114
646
=
5
*
114
+
76
114
=
1
*
76
+
38
76
=
2
*
38
+
0
所以4864和3458的最大公因子为38
自己跟据这个,写了个用辗转相除求两个数最大公因子的方法。
int
getIn(
int
a,
int
b)
{
if
(b
==
0
)
return
a;
return
getIn(b, a
%
b);
}
百度搜索了一下,果然还是别人的方法简单。
辗转相除递归算法:
//
求最大公约数,公式if(a=b*q+r)then(gcd(a,b)=gcd(b,r))
int
gcd(
int
a,
int
b)
{
return
(a
%
b)
?
gcd(b,a
%
b):b;
}
非递归算法:
//
非递归辗转相除
int
gcd(
int
a,
int
b)
{
int
r
=
0
;
r
=
a
%
b;
while
(r)
{
a
=
b;
b
=
r;
r
=
a
%
b;
}
return
b;
}
张旋(zxsoft)
如对本文有什么疑问,请在下面写下留言,谢谢!
相关阅读:
数组和json的相互转换
cocoapods安装完第三方类库后不生成workspace
CoreDataManager-OC版-兼容iOS10以前的版本
CoreDataManager-Swift版-兼容iOS10以前的版本
画虚线
YYText-显示富文本
删除项目中的CocoaPods
CocoaPods的安装
CocoaPods常用终端命令及Profile文件简单介绍
根据字符串生成类---类的类型.self---根据字符串创建控制器对象
原文地址:https://www.cnblogs.com/zxsoft/p/940155.html
最新文章
创意网页导航设计!
对单向链表的综合操作
单向链表操作:新建,输出,删除,插入
用fscanf()从文件取数据时,如何判断文件结束
使用fwrite()函数和fprintf()函数输出数据到文件时的区别
使用feof()函数判断文件是否结束
编写一函数用来实现左右循环移位。函数原型为move(value,n);n>0时右移n位,n<0时左移|n|位。
编写一个函数,对一个16位的二进制数取出它的奇数位(即从左边起,第1,3,5,...,15位)。
写一个函数,实现两个字符串的比较。即实现strcmp函数,s1=s2时返回0,s1!=s2时返回二者第一个不同字符的ASCII值。
输入一个字符串,内有数字和非数字字符,将其中连续的数字作为一个整数,依次存放到一数组a中。统计共有多少个整数,并输出这些数。
热门文章
将一个5*5的矩阵中最大的元素放在中心,4个角分别放4个最小的元素(顺序为从左到右,从上到下顺序依次从小到大存放),写一函数实现之。
nginx root&alias文件路径配置
使用awstat分析Nginx的访问日志
Linux下修改Mysql的用户(root)的密码
如何给MySql创建连接用户并授权
mysql 日期类型
php获取今日、昨日、上周、本月的起始时间戳和结束时间戳的方法
mysql中字段类型是datetime时比较大小问题
vsftpd配置文件解析
Linux用户及用户组设置
Copyright © 2020-2023
润新知