大家好,在编程的学习过程中,是离不开算法的,那么算法究竟是什么呢?
其实,算法就好比解答一道数学题目的过程,拿到一道数学题目后,我们要做的首先是认真读一下题目,然后再脑海中列出可以解决的方案,最后再从这些方案中选出最简便又快捷的方式求解问题。
算法用计算机专业术语描述是:
算法是解决问题的有序步骤,其每一步都必须是确定的、可行的。
算法具有以下几个重要的特征:
1
有穷性
2
不确定性
3
有效性
4
至少有0个或多个输入
5
至少有一个输出
今天,我们以VB编程中“相亲数”的问题为例,用程序来实现本题目的解答过程。
题目引入:
如果正整数a的所有因子的和等于正整数b,且正整数b所有因子
的和等于a,则a和b是一对“相亲数”(注:a和b不相同)。
编程求1~1000之间共有多少对“相亲数”,它们都是哪些?
题目解答分析:
在本题目,首先要理解相亲数是什么?其次要明白一个整数的因子数是什么?
因子就是所有可以整除这个数的数,不包括这个数自身.(就是一个数的约数,比如20的因子有 1 2 4 5 10)
这些明白后,我们结合VB控制结构来写相应的代码语句即可实现。
程序实现代码如下:
Private Sub Command1_Click()
Dim i%, j%, s%, t%, s1%
For i = 1 To 1000
s = 1
t = Sqr(i)
For j = 2 To t
If i Mod j = 0 Then s = s + j + i / j
Next
If i = t * t Then s = s - t
If i
s1 = 1
t = Sqr(s)
For j = 2 To t
If s Mod j = 0 Then s1 = s1 + j + s / j
Next
If s = t * t Then s1 = s1 - t
If s1 = i Then
Print "1--1000之间相亲数有:"; i; ","; s
Print i; "的因子为...:1";
For j = 2 To i / 2
If i Mod j = 0 Then Print "+"; j;
Next
Print "="; s
Print s; "的因子为...:1";
For j = 2 To s / 2
If s Mod j = 0 Then Print "+"; j;
Next
Print "="; i
End If
End If
Next
End Sub
运行结果如下图:
下面给大家留两个循环结构的计算题目,大家算出答案后,欢迎把答案和思考过程发在本文下方的留言区,共同交流学习。
1、单击按钮后,a,b的值分别是多少?
Private Sub Command1_Click()
a = 10
b = 4
For i = 1 To 20 Step -2
a = a + 5
b = b + 4
Next
Print a, b
End Sub
2、循环结束后,X的值是?
Private Sub Command1_Click()
For i = 1 To 20 Step 2
x = 5
x = x + i
Next
Print x
End Sub
今天的内容就是这样,跟我学VB-- 2018年冬季视频直播讲解课现在已经正式开始了,大家晚上有时间学习的话都可以进入课堂随时观看学习。
领取专属 10元无门槛券
私享最新 技术干货