vb循环必须掌握经典算法.pdf

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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 n1 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)

feixiang2017 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档