求最大公约数的问题

yll_cie 2004-12-12 10:57:04
有三个数(如1260,198,72)求最大公约数。

求解这道题能不能用一个函数,这个函数是求两个数的最大公约数,然后两次调用,求出三个数的最大公约数。
这种解法有没有问题?如果有问题,请举出一个反例来推翻。
...全文
346 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaozhishi 2004-12-13
  • 打赏
  • 举报
回复
north.....
高手哦
谢谢你了
我现在学习了你的知识
下次我一定再请教你
northwolves 2004-12-12
  • 打赏
  • 举报
回复
Private Sub Command1_Click()
MsgBox zdgys(1260, 198, 72)
End Sub

Function zdgys(ParamArray x()) As Long '数组X()最大公约数
Dim temp As Long, i As Long
zdgys = x(0)
For i = 1 To UBound(x)
Do While x(i) <> 0
temp = zdgys Mod x(i)
zdgys = x(i)
x(i) = temp
Loop
If zdgys = 1 Then Exit For
Next
End Function
northwolves 2004-12-12
  • 打赏
  • 举报
回复
可以,结果应该一样
yll_cie 2004-12-12
  • 打赏
  • 举报
回复
如果已经写好了一个求最大公约数的函数gdc(x,y),
那么这三个数的最大公约数能不能这样求呢:
gdc(gdc(1260,198),72)
或 gdc(198,gdc(1260,72))
或 gdc(1260,gdc(198,72))
xiaozhishi 2004-12-12
  • 打赏
  • 举报
回复
不是吧?
为什么会错呢?
如果两个数中间最大公约数是1
那它们最大公约数不是1吗?
3对数之间的比较,最小的那个不就是它们的最大公约数吗?
cugbqqinying 2004-12-12
  • 打赏
  • 举报
回复
一定要注意顺序问题,否则就要出错!!!
比如fun(1260,198),fun(1260,72),fun(198,72)
如果乱排序就会得出错误结果!!1111

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧