excel中使用vba来求取两个数的最大公约数

2022年7月28日 26点热度 0人点赞

小编致力于为大家奉献最有效的经验,让大家能够解决掉问题,但是大家也都知道,每个人遇到的情况都是不一样的,大家在看小编经验的同时,除了跟随操作,也需要自己的思考,举一反三的解决问题,这样才会变得更加有内涵,成为和小编一样的经验达人。excel中使用vba来求取两个数的最大公约数,这里,让小编给大家介绍一下。

工具/原料

  • excel2016
  • 此经验本人原创首发,未经本人许可请勿转载。

方法/步骤

  1. 1

    首先打开一个工作样表作为例子,并进入vba代码编辑窗口。

  2. 2

    在编辑窗口中输入以下代码。

    Sub 最大公约数()

        Dim m As Integer, n As Integer

        Dim m1 As Integer, n1 As Integer

        Dim t As Integer

        m = InputBox("输入自然数m:")

        n = InputBox("输入自然数n:")

        m1 = m

        n1 = n

        If m1 < n1 Then

            m1 = n

            n1 = m '交换m和n的值

        End If

        Do

            r = m1 Mod n1

            If r = 0 Then Exit Do

            m1 = n1

            n1 = r

        Loop

        str1 = m & "," & n & "的最大公约数=" & n1

        MsgBox str1

    End Sub

  3. 3

    我们先要知道最大公约数的求法,以本代码为例使用的是辗转相除法,定义是两个整数的最大公约数等于其中较小的那个数和两数的和相除余数为最大公约数。所以我们先将两个整数做一个定义。

  4. 4

    接着是需要新定义两个整数变量为m1,n1用作计算。不直接使用m和n作为变量的原因大家很清楚是为了在最后显示结果的时候,可以直接调用。

  5. 5

    这里的if判断语句,是为了确定两个整数中较小的那个值作为除数。

    If m1 < n1 Then

            m1 = n

            n1 = m '交换m和n的值

        End If

    大家可以理解为在输入m,n值时会发生第一个数比第二个数大的时候,做这样一个重新赋值,来简单化后面的重复取余过程。

  6. 6

    这里是做重复取余,直到余数为0中止。

  7. 7

    最后定义一个变量显示n1值为最大公约数,并使用msgbox函数显示其信息。

  8. 8

    按F5进行调试。我们还可以在loop循环里设定一个debug.print r来调试每次取余的求值。来帮助我们理解这段循环语句的实际计算过程。大家注意这两个代码

    m1 = n1

    n1 = r

    这里是将M1取n1值,而n1取求得的余值。按过程计算是越来越小,最终mod得值为0。

  9. 9

    先写到这里了,谢谢大家的观看。

    祝大家生活愉快。

    小编还有许多其他的经验可以观看,如果无法解决问题可以联系小编进行咨询。

    看不清楚图片的可以点击放大再看哦。

    END

注意事项

  • 个人经验,仅供参考。
经验内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域),建议您详细咨询相关领域专业人士。
作者声明:本篇经验系本人依照真实经历原创,未经许可,谢绝转载。
展开阅读全部

laozhao

这个人很懒,什么都没留下

文章评论