zoukankan
html css js c++ java
辗转相除
节选自:(
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)
如对本文有什么疑问,请在下面写下留言,谢谢!
查看全文
相关阅读:
Python深入02 上下文管理器
Python深入01 特殊方法与多范式
Python进阶09 动态类型
Python进阶08 异常处理
Python进阶07 函数对象
Python进阶06 循环对象
Python进阶05 循环设计
Python进阶04 函数的参数对应
Python进阶03 模块
Python进阶02 文本文件的输入输出
原文地址:https://www.cnblogs.com/zxsoft/p/940155.html
最新文章
二、Android应用的界面编程(六)ProgressBar及其子类[SeekBar、RatingBar]er
二、Android应用的界面编程(一)界面编程与视图(View)组件
截取字符串替换成星号
Android设备各种使用尺寸整理
让Fragment监听返回键
API指南----application
44、自定义仿IOS对话框
Android FrameWork——相关内容
Android中垃圾回收日志信息
TextView------文字底部或者中间加横线
热门文章
laravel5 html引用问题
laravel5 数据库连接问题
MySQL开发规范
PHP PSR 代码风格
mysql show命令
MySQL show master / slave status 命令参数
makefile
C socket udp方式发数据
C socket post数据到url
MySQL 同步状态
Copyright © 2011-2022 走看看