C语言!!!

C语言!!!递归求最大公约数原理,比如18和3,求详细递归解答,我只想知道他这个是怎么递归求出的... C语言!!!递归求最大公约数原理,比如18和3,求详细递归解答,我只想知道他这个是怎么递归求出的 展开
 我来答
百度网友75e0ae8
2018-03-28 · TA获得超过5537个赞
知道大有可为答主
回答量:2491
采纳率:91%
帮助的人:1411万
展开全部

原理就是:

  1. 用比较大的数去除比较小的数

  2. 然后用比较小的数去除余数(这时候比较小的数就变成了比较大的数,余数变成了比较小的数)

  3. 以此类推

来一个例子,比如说18和12求最大公约数:

  1. divisor(18, 12)

    18 / 12 余 6, 余数不为0继续 (这时候再进行递归运算时,m=12,n=6)

  2. divisor(12,18%12)

    12/6余0,余数为0,停止,找到6是最大公约数

不懂继续追问吧,请采纳,谢谢!

追问
有一个疑问
传递参数divisor(18,12)
18,18/12=余6
这里m是怎么变成12的?
听不清啊
高粉答主

2018-03-28 · 说的都是干货,快来关注
知道顶级答主
回答量:7.8万
采纳率:89%
帮助的人:1.9亿
展开全部

这是利用数学知识。

18与3的最大公约数=3与0的最大公约数(18除以3,商6,余数为0)

即devisor(18,3)=devisor(3,0)=3

而任何一个非0数与0的最大公约数就等于它自身。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式