- 1、本文档共4页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
vb循环必须掌握经典算法
经典算法:
1 求两个数的最大公约数和最小公倍数
方法一:课本74 页,辗转相除法 (希望大家看到这个算法,能够理解程序的意思,比如考
试出根据程序写结果或者程序填空题)
方法二:
两个数的最大公约数,然后满足能被这两个数整除,既余数都为0。求最大公约数,根据数
学原理,最大公约数是最大是两个数中小的那个数 (比如4 和8,最大公约数是4),最小是
1 (比如5和7,最大公约数是1),程序段如下
Private Sub Form_Click()
Dimn AsInteger,m AsInteger,r AsInteger,i AsInteger
n InputBox(请输入第一个数)
m InputBox(请输入第二个数)
r IIf(n m,n,m) iif 函数的用法参见课本67 页
For i rTo 1Step -1
IfnMod i 0Andm Mod i 0Then
Printn ,m 这两个数的最大公约是i
ExitFor
EndIf
Next i
Printn ,m 这两个数的最小公倍数是 n*m/i
End Sub
2 判断一个数是否为素数,假定概数是n
如果一个数是素数,那么它只能被 1和它本身整除,所以该数除以2 到n-1之间的所有余数
都不为0,反之,该数除以2 到n-1之间只要有一个余数为0,它就不是素数 (这个时候就
可以提前结束循环,肯定该数不是素数),所以循环的初值是2,终止时n-1,
从数学原理终止为n/2,spr(n)都可以,其中n-1n/2spr(n),所以终止为spr(n)的循环次数最
少
方法一:如果是不素数提前结束循环,是素数,退出循环是循环变量的值不满足终止
Private Sub Form_Click()
Dimn%,i%
n InputBox(请输入一个数)
For i 2Ton - 1
IfnMod i 0Then
Printn 不是素数
ExitFor
EndIf
Next i
Ifi nThen
Printn 是素数
EndIf
End Sub
方法二:不管这个数是否为素数,假定它是素数,用一个变量 (一般用flag)记住它是素数
的状态 (flag 1),否则反之flag 0
Private Sub Form_Click()
Dimn%,i%,flag%
flag 1
n InputBox(请输入一个数)
For i 2Ton - 1
IfnMod i 0Then
flag 0
ExitFor
EndIf
Next i
Ifflag 1Then
Printn 是素数
Else
Printn 不是素数
EndIf
End Sub
3 找出1到300之间的所有素数,并且5个一行输出
Private Sub Form_Click()
Dimn%,i%,flag%
n 0
Forj 3To300
flag 1
For i 2Toj - 1
Ifj Modi 0Then
flag 0
ExitFor
EndIf
Next i
Ifflag 1Then
Printj;
n n+ 1
IfnMod 5 0ThenPrint
EndIf
Nextj
End Sub
4 例4-12 教材80 页,求 1 1 1 n1 1
1 (1)
3! 5! 7! (2n 1)!
把do while t0.000001 改成 1//t0.000010
5 求1+3+5+7+……+100 的和
Private Sub Form_Click()
Dim i%,sum%
sum 0
For i 1To 100 Step 2
sum sum + i
Next i
Print 1+3++100 sum
End Sub
6.求1!+2!+3!+…..10!之和
Private Sub Form_Click()
Dim i%,sum!,f! ‘注意这里定义为单精度,否则产生错误
sum 0
f 1
For i 1To 10
f f *i
sum sum + f
Next i
Print 1!+2!++10! sum
End Sub
7 打印九九乘法表.
Priv
文档评论(0)