计算机vb三个数排序,计算机考试二级VB常用算法(5):排序

e6960d07c427bfabbe44cd4411e3cf2c.png

1、算法说明

1) 公约数:

用辗转相除法求两自然数m、n的公约数。

(1) 首先,对于已知两数m、n,比较并使得m>n;

(2) m除以n得余数r;

(3) 若r=0,则n为求得的公约数,算法结束;否则执行步骤(4)

(4) mßn nßr 再重复执行(2)

譬如: 10与5

分析步骤: m=10 n=5

r=m mod n=0

所以n(n=5)为公约数

24与9

分析步骤: m=24 n=9

r=m mod n=6

r≠0 m=9 n=6

r=m mod n=3

r≠0 m=6 n=3

r=m mod n=0

所以n(n=3)为公约数

算法实现

循环实现

Private Function GCD(ByVal m As Long, ByVal n As Long) As Long

Dim temp As Long

If m < n Then temp = m: m = n: n = temp

Dim r As Long

Do

r = m Mod n

If r = 0 Then Exit Do

m = n

n = r

Loop

GCD = n

End Function

递归实现

Private Function GCD(ByVal m As Long, ByVal n As Long) As Long

Dim temp As Long

If m < n Then temp = m: m = n: n = temp

Dim r As Long

r = m Mod n

If r = 0 Then

GCD = n

Else

m = n

n = r

GCD = GCD(m, n)

End If

End Function

2) 最小公倍数

m×n÷公约数

3) 互质数

公约数为1的两个正整数

解题技巧

该算法需要识记!

这种类型题目的扩展是约数和因子题型。

2、实战练习

1) 补充代码(2003春二(9))

给定一个十进制正整数,找出小于它并与其互质的所有正整数(所谓互质数是指公约数为1的两个正整数,下图是程序执行画面)。

Option Explicit

Private Function gcd( (1) ) As Integer

Dim r As Integer

r = m Mod n

If r = 0 Then

gcd = n

Else

m = n: n = r

(2)

End If

End Function

Private Sub Command1_Click()

Dim n As Integer, p As Integer

n = Val(Text1)

For p = n - 1 To 2 Step -1

If (3) Then List1.AddItem p

Next p

End Sub

2) 编程题(2002秋上机试卷01)

生成一个三行八列的二维数组A(3,8),其中前两行元素产生的方法是:

用初值X1=26及公式Xi+1=(25×Xi+357) Mod 1024,产生一个数列:X1、X2、......、X16 。

其中X1~X8作为A的第一行元素;X9~X16作为A的第二行元素;A的第三行元素值取前两行同列元素的公约数

2829f2ca24f0d0090cbba57f30759f23.png

计算机考试二级VB常用算法(5):排序.doc

下载Word文档到电脑,方便收藏和打印[全文共1535字]

编辑推荐:

8b95f2eb3d3f7ce4dc3bf1178c74941e.png

8b95f2eb3d3f7ce4dc3bf1178c74941e.png

8b95f2eb3d3f7ce4dc3bf1178c74941e.png

8b95f2eb3d3f7ce4dc3bf1178c74941e.png

8b95f2eb3d3f7ce4dc3bf1178c74941e.png

下载Word文档

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值