VB常用算法

合集下载

VB常用十大算法

VB常用十大算法

1. 累加与连乘

1、算法说明

[分析]

累加形式:V=V+e 连乘形式:V=V*e

其中:V 是变量,e 是递增表达式。累加和连乘一般通过循环结构来实现。

注意:需在执行循环体前对变量 V 赋初值。一般累加时置初值0;连乘时置初值为1 [举例]求N!的结果。

Private Sub Comma nd1_Click()

Dim n%, i%, s&

n = Val(InputBox("输入 n"))

s = 1

For i = 1 To n

s = s * i

Next i

Pr int s

End Sub

[应用举例]根据下列公式,求自然对数 e 的的近似值

Private Sub Comma nd1_Click()

Dim i%, n&, t!, e!

e = 2

i = 1

t = 1

Do While t > 0.00001

i = i + 1

t = t / i e = e + t

Loop

Print"计算了 "; i;"项目和是:";e

Print Exp(1)

与上句输出值进行对比以证明算法的正确性

End Sub

2. 最值问题

1、算法说明

=1 + 一_ + — +一 + 1! 2! 3! + 1 = 1 + -1

要求:误差小于0.00001

在若干数中求最大值,一般先取第一个数为最大值的初值(即假设第一个数为最大值),然后,在循环体内将每一个数与最大值比较,若该数大于最大值,将该数替换为最大值,直到循环结束。

求最小值的方法类同。

求若干数平均值,实质上就是先求和,再除以这些数的个数。

应用举例:随机产生n个1-100 (包括1和100)的数,求它们的最大值、最小值和平均值。

vb常用算法

vb常用算法

1、主次对角线求和(可以写成过程的形式)Private Function SumMain(a() as integer) For i = 1 To Ubound(a,1)

s = s + a(i, i)

Next i

sumMain=s

End Function

Private Function SumFu(a() as integer) For i = 1 To Ubound(a,1)

s = s + a(i, Ubound(a,1) + 1 - i)

Next i

sumFu=s

End Sub

2、斐波那锲数列(后一项为前面两项之和) Private sub Fib(n as Integer)

Dim a() as Integer

a(1) = 1: a(2) = 1

redim preserve a(n)

For i = 3 To n

a(i) = a(i - 1) + a(i - 2)

redim preserve a(i)

Next i

End Sub

3、冒泡法排序

Private Sub Sort(a() as Integer)

For i = 1 To Ubound(a) - 1

For j = i + 1 To Ubound(a)

If A(i) > A(j) Then '''判断a(i)与a(j+1)谁大,把大的放到前边

t = A(i)

A(i) = A(j)

A(j) = t

End If

Next j

Next i

''如果要从小到大排就把"A(j) > A(j - 1)"改称"A(j) < A(j - 1)" End Sub

VB常用算法介绍

VB常用算法介绍

VB常用算法介绍

在VB程序开发中,常常需要使用各种算法来处理数据和解决问题。下面将介绍几种常用的VB算法,包括排序算法、算法和图算法等。

1.排序算法

排序算法用来将一组数据按照一定的规则进行排列。常见的排序算法包括冒泡排序、选择排序、插入排序、归并排序和快速排序等。

冒泡排序(Bubble Sort)是一种交换排序算法,通过不断地相邻元素比较和交换,将较大的元素逐渐交换到末尾,从而实现排序。冒泡排序的时间复杂度为O(n^2)。

选择排序(Selection Sort)是一种排序算法,每次从待排序的数据元素中选择最小(或最大)的一个元素,放到已排序的序列的末尾。选择排序的时间复杂度为O(n^2)。

插入排序(Insertion Sort)是一种排序算法,将数组元素分为已排序和未排序两部分,每次从未排序的部分中取出一个元素,插入到已排序的部分的适当位置。插入排序的时间复杂度为O(n^2)。

归并排序(Merge Sort)是一种分治排序算法,将待排序的数据分为两个子序列,然后递归地对子序列进行排序,并将两个已排序的子序列合并成一个有序序列。归并排序的时间复杂度为O(nlogn)。

快速排序(Quick Sort)是一种分治排序算法,通过一次划分将待排数据分成左右两个子序列,然后递归地对子序列进行排序。快速排序的时间复杂度为O(nlogn)。

2.算法

算法用来在一个数据集合中查找一些元素或满足特定条件的元素。常

见的算法包括线性、二分和深度优先。

线性(Linear Search)是一种简单的算法,从数据集合的第一个元

VB常用算法总结大全

VB常用算法总结大全

VB常用算法总结大全

VB(Visual Basic)是一种对初学者友好的编程语言,因其简单易学的特点而受到很多人的喜爱。在VB中,算法是编程过程中非常重要的一部分,它们用来解决各种问题,从简单的数学计算到复杂的数据处理。本文将总结一些常用的算法,帮助VB程序员更好地应用于实际项目中。

一、排序算法

1.冒泡排序

冒泡排序是一种简单的排序算法,它通过不断地交换相邻的元素来对数据进行排序。它的基本思想是从列表的第一个元素开始,依次比较相邻的两个元素,如果顺序不正确,则交换它们的位置。重复这个过程,直到整个列表都已经排序。

2.快速排序

快速排序是一种高效的排序算法,它通过选择一个基准元素,将列表分为两部分,一部分小于基准元素,一部分大于基准元素。然后对这两部分分别进行快速排序,最后将它们合并在一起。

3.插入排序

插入排序是一种简单直观的排序算法,它将列表分为已排序和未排序两部分,每次选择未排序部分的第一个元素,并插入到已排序部分的适当位置。重复这个过程,直到整个列表都已经排序。

二、查找算法

1.顺序查找

顺序查找是一种简单的查找算法,它从列表的第一个元素开始,依次比较每个元素,直到找到目标元素或者遍历完整个列表。

2.二分查找

二分查找是一种高效的查找算法,它要求列表已经排序。它通过比较目标元素与列表中间元素的大小关系来确定要的部分,并缩小范围。重复这个过程,直到找到目标元素或者确定列表中没有目标元素。

三、图算法

1.深度优先(DFS)

深度优先是一种用于图遍历的算法,它从一个起始点开始,沿着一个路径尽可能深地访问节点,直到遇到一个没有未访问过的相邻节点为止。然后回溯到前一个节点,寻找其他路径。

vb常用算法介绍

vb常用算法介绍

vb常用算法介绍

编辑整理:

尊敬的读者朋友们:

这里是精品文档编辑中心,本文档内容是由我和我的同事精心编辑整理后发布的,发布之前我们对文中内容进行仔细校对,但是难免会有疏漏的地方,但是任然希望(vb常用算法介绍)的内容能够给您的工作和学习带来便利。同时也真诚的希望收到您的建议和反馈,这将是我们进步的源泉,前进的动力。

本文可编辑可修改,如果觉得对您有帮助请收藏以便随时查阅,最后祝您生活愉快业绩进步,以下为vb常用算法介绍的全部内容。

一、累加算法

如果在设计过程中遇到求1+2+3+……+100等连加问题时,就可以用累加算法来解决.

累加算法的一般做法是设一个变量 s,作为累加器使用,初值为0,设一个变量用来保存加数.一般在累加算法中的加数都是有规律可循,可结合循环程序来实现。一个循环程序的设计,如果以下三方面确定下来:变量的赋初值、循环体的内容、循环结束条件,那么根据循环语句的格式,就很容易写出相应的循环程序。

例:求1+2+3++100的累加和,并打印输出

分析:

设累加器S,初值为0,加数用变量I表示

当I=1时,累加器S= S+I = 0+1=1

当I=2时,累加器S= S+I =1+2= 3

当I=3时,累加器S=S+I =3+3 =6

当I=4时,累加器S=S+I =6+4 =10

……

当I=100时,累加器S=S+100=1+2+3+……+99+100=5050

不难看出,I的值从1变化到100的过程中,累加器均执行同一个操作:S=S+I,S=S+I的操作执行了100次,所以该程序段可写成:

Dim I As Integer, S As Integer

VB常用算法总结

VB常用算法总结

VB常用算法总结

在VB(Visual Basic)编程中,常用的算法有很多。下面将对其中

一些常见和重要的算法进行总结。请注意,由于篇幅限制,这只是一个简

要总结,无法涵盖所有算法的细节。

1.排序算法:

排序算法是计算机科学中最基本和常见的算法之一、在VB中,常用

的排序算法包括冒泡排序、插入排序、选择排序、快速排序和归并排序等。排序算法通过比较和交换来对一组数据进行重新排列,使其按照指定的顺

序排列。

2.查找算法:

查找算法用于在一个数据集中寻找特定的值或元素。在VB中,常用

的查找算法有二分查找和线性查找等。二分查找是一种高效的算法,可以

在有序数组中快速地找到目标元素。

3.图算法:

图算法是用于解决与图相关的问题的算法。在VB中,常用的图算法

包括广度优先(BFS)和深度优先(DFS)等。这些算法可以用于寻找图中

的路径、检测环和遍历图等操作。

4.动态规划:

动态规划是一种用于解决最优化问题的算法。在VB中,常用的动态

规划算法有背包问题、最长公共子序列和最短路径等。动态规划算法通过

拆解问题为子问题,并保存子问题的解来避免重复计算,从而提高算法的

效率。

5.字符串匹配:

字符串匹配算法用于在一个字符串中查找另一个字符串。在VB中,

常用的字符串匹配算法有暴力匹配算法、KMP算法和Boyer-Moore算法等。这些算法通过比较字符来确定字符串的匹配位置。

6.线性代数:

线性代数是数学的一个分支,用于解决线性方程组和向量空间等问题。在VB中,常用的线性代数算法有矩阵运算、向量运算和线性方程求解等。这些算法可以应用于计算机图形学、数据分析和机器学习等领域。

VB基本算法

VB基本算法

print a(i,j);
next j
print
next i
关键语句
for i=1 to 4
for j=1 to 3
b(i,j)=a(j,i)
print b(i,j);
next j
print
next i
(15)求一个整数的反序数。 如1234的反序数是4321。
Dim i as integer, L as integer
Dim n as integer, m as integer
N=InputBox(“input a number”)
L=len(trim(str(n))) ‘注意一定要使用Trim( )
For i=1 to L
M=m+mid(trim(str(n)), i, 1) * 10^(i-1)
Next i
数”))
For I=1 to 3
A(I)=m mod 10
M=m\10
Next i
mid=int((low+high)/2)
If x=a(mid) then
f=1
Elseif x<a(mid) then
high=mid-1
ElseIf x>a(mid) then
low=mid+1
End if
Loop
(12)排序

VB常用算法总结大全

VB常用算法总结大全

m = Val(Text1.Text) ‘取数据M n = Val(Text2.Text) ‘取数据N
If m <> Int(m) or m < 1 or n <> Int(n) or n < 1 Then
Text3.Text = "数据错误!"
Else Do
‘求最大公约数
判断数据是否合法
r = m Mod n
分析:这是一个“递推”问题,先从最后一天推出倒数第二天的 桃子,再从倒数第二天的桃子推出倒数第三天的桃子……。
设第n天的桃子为xn,那么它前一天的桃子数是xn -1。
即:xn
1 2
xn1
1
也就是:xn1 (xn 1) 2
已知:当N=7第7 天的桃子数为1,则第6天的桃子数由公式得4 个,依次类推,可求得第1 天的桃子数。 程序如下:
Next i
5、对数组的行/列操作(行、列的和)
P115习题3:求二维数组每行的和数与每列的和数, 数组元素为1—9之间的随机数。
Option explicit
'求列和
Option base 1
Private Sub Command2_Click()
’生成数组
For J = 1 To 5
Private Sub Command1_Click() L(J) = 0

VB常用算法大全

VB常用算法大全

VB常用算法大全

在VB中实现常用算法是程序开发中非常常见的任务之一、下面将介绍几个常用的算法以及它们在VB中的实现方式。

1.冒泡排序算法:

冒泡排序是一种简单直观的排序算法,它通过交换相邻元素来排序。具体实现如下:

```vb

Sub BubbleSort(arr( As Integer)

Dim i As Integer, j As Integer

Dim temp As Integer

For i = LBound(arr) To UBound(arr) - 1

For j = i + 1 To UBound(arr)

If arr(j) < arr(i) Then

temp = arr(j)

arr(j) = arr(i)

arr(i) = temp

End If

Next j

Next i

End Sub

```

2.快速排序算法:

快速排序是一种高效的排序算法,它通过选择一个基准元素并将数组分为两部分来排序。具体实现如下:

```vb

Sub QuickSort(arr( As Integer, low As Integer, high As Integer)

Dim i As Integer, j As Integer

Dim pivot As Integer, temp As Integer

i = low

j = high

pivot = arr((low + high) / 2)

While i <= j

While arr(i) < pivot

i=i+1

Wend

While arr(j) > pivot

VB常用算法总结

VB常用算法总结

VB常用算法总结

VB是一种基于Visual Basic语言的编程语言,广泛应用于Windows 操作系统环境下的软件开发。在VB中,算法的选择和使用对于解决问题是至关重要的。本文将对VB常用算法进行总结,希望能给读者提供一些编程的指导和参考。

一、排序算法

排序算法是一类重要的算法,用于将一组无序的数据按照一定的规则进行排序。VB中常用的排序算法有冒泡排序、选择排序、插入排序、快速排序等。

1.冒泡排序:从序列的第一个元素开始,依次比较相邻的两个元素,如果它们的顺序错误则交换位置,直到序列被完全排序。

2.选择排序:依次选择未排序序列中的最小元素,将其放到已排序序列的末尾。

3.插入排序:将一个记录插入到已排序好的序列中,从而得到一个新的、记录数增1的有序序列。

4.快速排序:通过一趟排序将待排记录分割成独立的两部分,其中一部分记录的关键字均比另一部分小,然后分别对这两部分记录继续进行排序,直到整个序列有序。

二、查找算法

查找算法用于在一组有序或无序的数据中寻找指定的元素。VB中常用的查找算法有线性查找、二分查找、哈希查找等。

1.线性查找:从数据的开头开始,逐个比较每一个元素,直到找到目

标元素。

2.二分查找:在有序序列中,每次将待查元素与中间位置的元素比较,如果相等则找到,否则将待查元素与中间位置的元素比较,直到找到目标

元素或序列为空。

3.哈希查找:通过哈希函数将关键字映射到一个定长的数组上,当需

要查找时,根据关键字计算出哈希地址,从数组中访问对应位置的元素。三、图算法

图算法主要用于解决图结构相关的问题,如最短路径、拓扑排序等。VB中常用的图算法有深度优先、广度优先、Dijkstra算法等。

VB常用算法介绍

VB常用算法介绍

常用算法介绍

VB

算法(Algorithm):计算机解题的基本思想方法和步骤。算法的描述:是对要解决一个问题或要完成一项任务所采取的方法和步骤的描述,包括需要什么数据(输入什么数据、输出什么结果)、采用什么结构、使用什么语句以及如何安排这些语句等。通常使用自然语言、结构化流程图、伪代码等来描述算法。

一、计数、求和、求阶乘等简单算法

此类问题都要使用循环,要注意根据问题确定循环变量的初值、终值或结束条件,更要注意用来表示计数、和、阶乘的变量的初值。

例:用随机函数产生100个[0,99]范围内的随机整数,统计个位上的数字分别为1,2,3,4,5,6,7,8,9,0的数的个数并打印出来。

本题使用数组来处理,用数组a(1 to 100)存放产生的确100个随机整数,数组x(1 to 10)来存放个位上的数字分别为1,2,3,4,5,6,7,8,9,0的

数的个数。即个位是1的个数存放在x(1)中,个位是2的个数存放在x(2)中,……

个位是0的个数存放在x(10)。

将程序编写在一个GetTJput过程中,代码如下:

Public Sub GetTJput()

Dim a(1 To 100) As Integer

Dim x(1 To 10) As Integer

Dim i As Integer, p As Integer

'产生100个[0,99]范围内的随机整数,每行10个打印出来

For i = 1 To 100

a(i) = Int(Rnd * 100)

If a(i) < 10 Then

Form1.Print Space(2); a(i);

VB常考算法

VB常考算法

常考算法:

1.求因子数

Private sub factor( x as integer, fn() as integer)

Dim i as integer,n as integer

Redim fn(1) : n=1 : fn(1)=1

For i=2 to x/2

If x mod i=0 then

N=n+1

Redim preserve fn(n)

Fn(n)=i

End if

Next i

End sub

2.求因子数之和

Private functionsum_ factor( n as integer) as long Dim i as intger,j as integer,s as integer

Do while i<n/2

I=i+1

If n mod i=0 then

S=s+i

End if

Loop

Sum_factor=s

End function

3.判断数是否为素数

Private function prime(n as long) as boolean

Dim i as integer

For i=2 to sqr(n)

If n mod i=0 then exit function

Next i

Prime = true

End function

4.求最大公约数

Private function gcd(m as integer,n as integer) as integer If (m mod n)=0 then

Gcd=n

Else

Gcd=gcd(n,m mod n)

End if

5.求最小公倍数

VB_常用算法总结

VB_常用算法总结

VB_常用算法总结

VB是一种使用广泛的编程语言,它有很多常用的算法可以应用到各

种实际的问题中。下面是一些常用的VB算法的总结。

1.排序算法:

-冒泡排序:比较相邻的两个元素,如果顺序错误则交换位置,重复

该过程直到排序完成。

-插入排序:将一个元素插入到已经排好序的数组中的正确位置。

-选择排序:每次选择数组中最小的元素,放到已排序部分的末尾。

-快速排序:选择一个元素作为基准,将小于它的元素放在它的左边,大于它的元素放在右边,分别对左右两部分进行递归排序。

2.查找算法:

-二分查找:将有序数组从中间切分,判断目标元素与中间元素的大

小关系,递归查找目标元素所在的半边数组。

-线性查找:逐个比较数组中的元素,直到找到目标元素或遍历完整

个数组。

3.图算法:

-深度优先(DFS):从起始节点开始,递归地探索图中的每个节点,

直到遍历到最深的节点为止。

-广度优先(BFS):从起始节点开始,逐层地探索图中的节点,直到

找到目标节点。

- 最短路径(Dijkstra算法):计算从起始节点到所有其他节点的最短路径。

4.动态规划:

-背包问题:给定一组物品和一个背包的容量,选择一些物品放入背包中,使得物品的总价值最大。

-最长公共子序列(LCS):两个序列中的最长公共子序列,可以用动态规划的方法求解。

5.图像处理:

-图像平滑:使用滤波器(如均值滤波器、高斯滤波器)对图像进行平滑处理,去除图像中的噪声。

- 边缘检测:使用边缘检测算法(如Canny算法、Sobel算法)从图像中检测出物体的边缘。

6.数据压缩:

-霍夫曼编码:根据字符出现的频率,构建霍夫曼树,并生成每个字符的编码,实现数据的无损压缩。

VB 常用算法

VB 常用算法

常用算法汇总

计算机等级考试二级VB常用算法(1):累加和连乘

1、算法说明

累加形式:V=V+e

连乘形式:V=V*e

其中:V是变量,e是递增表达式。累加和连乘一般通过循环结构来实现。

注意:需在执行循环体前对变量V赋初值。一般的,累加时置初值0;连乘时置初值为1.

举例

求N!的结果。

Private Sub Command1_Click()

Dim n%,i%,s&

n = V al(InputBox("输入n"))

s = 1

For i = 1 To n

s = s * i

Next i

Print s

End Sub

错误的写法:

Private Sub Command1_Click()

Dim n%,i%,s&

n = V al(InputBox("输入n"))

For i = 1 To n

s = 1 …赋初值语句位置不对!

s = s * i

Next i

Print s …输出s的值为n,而不是n!

End Sub

应用举例

根据下列公式,求自然对数e的的近似值。

要求:误差小于0.00001

Private Sub Command1_Click()

Dim i%,n&,t!,e!

e = 2

i = 1

t = 1

Do While t > 0.00001

i = i + 1

t = t / i

e = e + t

Loop

Print "计算了";i;"项目和是:"; e

Print Exp(1)…与上句输出值进行对比以证明算法的正确性

End Sub

解题技巧

1)由于这类题目往往是根据精度要求来求值,因此我们不能预知具体循环次数,所以这类题目一般用Do循环,很少用For循环。设定循环变量和通项变量,注意各变量的初值;

VB算法

VB算法

VB常用算法(一)累加和连乘

关键词:算法累加连乘

1、算法说明

累加形式:V=V+e

连乘形式:V=V*e

其中:V是变量,e是递增表达式。累加和连乘一般通过循环结构来实现。

注意:需在执行循环体前对变量V赋初值。一般的,累加时置初值0;连乘时置初值为1。举例

求N!的结果。

Private Sub Command1_Click()

Dim n%, i%, s&

n = Val(InputBox("输入n"))

s = 1

For i = 1 To n

s = s * i

Next i

Print s

End Sub

错误的写法:

Private Sub Command1_Click()

Dim n%, i%, s&

n = Val(InputBox("输入n"))

For i = 1 To n

s = 1 …赋初值语句位置不对!

s = s * i

Next i

Print s …输出s的值为n,而不是n!

End Sub

应用举例

根据下列公式,求自然对数e的的近似值。

要求:误差小于0.00001

Private Sub Command1_Click()

Dim i%, n&, t!, e!

e = 2

i = 1

t = 1

Do While t > 0.00001

i = i + 1

t = t / i

e = e + t

Loop

Print "计算了"; i; "项目和是:"; e

Print Exp(1) …与上句输出值进行对比以证明算法的正确性

End Sub

解题技巧

1) 由于这类题目往往是根据精度要求来求值,因此我们不能预知具体循环次数,所以这类题目一般用Do 循环,很少用For循环。设定循环变量和通项变量,注意各变量的初值;

VB常用算法总结大全

VB常用算法总结大全

使用Adodb.Stream对象处理二 进制数据,可以实现数据的压缩 、加密等操作。
使用MemoryStream对象在内存 中创建临时数据流,提高数据处 理效率。
感谢您的观看
THANKS
队列操作
实现入队(enqueue)、出队(dequeue)、 查看队首和队尾元素等基本操作。
3
应用举例
使用栈实现括号匹配检查、表达式求值等;使用 队列实现广度优先搜索(BFS)等算法。
06 文件操作与I/O流处理 算法
文件读写操作
顺序文件读写
使用Open、Input、Output、 Close等语句,按照文件内容的顺 序进行读写操作。
03
适用于数据量较小或者数据无序的情况。
二分查找
原理
在有序数组中,取中间元素与目标元素比较,如果目标元素小于中间元素,则在左半部分继续查找;如果目标元素大 于中间元素,则在右半部分继续查找;如果相等则查找成功。
时间复杂度
平均时间复杂度和最坏时间复杂度都是O(log n),其中n是数据结构中元素的个数。
VB常用算法总结大 全
汇报人:XX
目录
CONTENTS
• 排序算法 • 查找算法 • 图形图像算法 • 数值计算算法 • 数据结构与算法 • 文件操作与I/O流处理算法
01 排序算法
冒泡排序
时间复杂度:最好情况下为O(n),最坏和平均 情况下为O(n^2)。 稳定性:稳定。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

常用算法

1.判断素数

素数是指只能被1与自己整除的数是素数,最小的素数是2,如3,5,7等都是素数判断方法一:

Private Function Prime(N As Integer)As Boolean

Dim i As Integer

For i=2 To N-1(或sqr(N)或N\2)

If N Mod i=0 Then Exit For

Next i (或N/i=Int(N/i))

If i=N Then Prime=True

End Function

判断方法二:

Private Function Prime(N As Integer)As Boolean

Dim i As Integer

For i=2 To N-1

If N Mod i=0 Then Exit Function

Next i

Prime=True

End Function

(2)求最大公约数(欧几里德算法,辗转相除法)

最大公约数是指两个数最大的公约数

Private Function Gcd(byval m As Integer,ByVal n As Integer)As Integer Dim r As Integer

r=m Mod n

Do while r<>0

m=n

n=r

r=m Mod n

Loop

Gcd=n

End Function

利用递归实现判断最大公约数

Private Function Gcd(ByVal m As Integer,ByVal n As Integer)As Integer

Dim r As Integer

r=m Mod n

If r=0 Then

Gcd=n

ELse

M=n

n=r

Gcd=Gcd(m,n)

End If

End Function

(3)求因子算法与求完全数算法

Private Sub factor(x As Integer,fn()As Integer)

'动态数组fn用以存放所有的因子

Dim i As Integer,n As Integer

For i=1 To X

If x Mod i=0 Then

n=n+1

Redim Preserve fn(n)

fn(n)=i

End If

Next i

End Sub

求完全数:完全数:整数N的因子和(其中因子包括1,不包括自身)等于N

Prirate Function wanshu(N As Integer)As Boolean 'N为原数,sum为N的因子之和

Dim i As Integer,sum As Integer

For i=1 To N-1

If N Mod i=0 Then

sum=sum+i

End If

Next i

If sum=N Then wanshu=True

End Function

(4)进制转换

N进制--十进制

如二进制转换为十进制采用从右向左每个数乘以其对应的幂值,如二进制10111=1×2^0+1×2^1+1×2^2+0×2^3+1×2^4=23,八进制转换为十进制采用从右向左每个数乘以其对应的幂值,如八进制25=5×8^0+2×8^1=21,十六进制转换为十进制采用从右向左每个数乘以其对应的幂值, 如十六进制A7=7×16^0+10×16^1=167(十六进制的范围是从0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F共16个数,其中A表示10,B表示11,依次类推,F表示15)

private sub zh1(a as string, N as integer,b as integer)

'a为N进制数,b为转换后的十进制数,N 代表某种进制

dim p as integer,i as integer,s1 as string

p=0

for i=Len(a) to 1 step -1

s1=Ucase(Mid(a,i,1))

if s1>="A" And s1<="F" Then s1=Asc(s1)-55

b=b+val(s1)*N^p

p=p+1

Next I

End Sub

十进制---- N进制:方法是除N逆序取余法,注意逆序

如将十进制188转换为十六进制的方法是,除以16逆序取余法, 所以是274

余数

188/8 4(余数)

23/8 7(余数)

2/8 2(余数)

Private Sub zh(a as integer,N as integer,b as integer)

‘a为十进制数,b为转换后的N进制数,N代表某种进制dim r as integer, s as string

do until a=0

r=a mod n ‘r取余

if r>9 then s=Chr(55+r) else s=Cstr(r)

b=s & b

a=a\N

Loop

End Sub

(5)互质数:两个数的最大公约数为1

Private Function reprime(a as integer, b as integer) as boolean dim i as integer

for i=2 to a

if a mod i=0 and b mod i=0 then exit function

next i

reprime=true

End Function

(6)回文数:左右对称的数为回文数(如121,13231)

方法一:折半判断法

Private Function compare(n as long) as boolean

Dim I as integer, s as string , slen as integer

s=Cstr(n): slen=Len(s)

For i=1 to slen\2

if mid(s,I,1)<>Mid(s,slen-i+1,1) Then Exit Function next

compare=true

End Function

方法二:根据定义:其逆序数(反序数)和原数相等的数为回文数Private Function compare(n as integer) as Boolean

dim I as integer, s1 as string,s2 as string

s1=cstr(n)

For i=1 to len(s1)

s2=Mid(s1,I,1) & s2

Next I

if s2=s1 then compare=true

End Function

(7)最小公倍数

方法一:最小公倍数=两数乘积/最大公约数

相关文档
最新文档