首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

VB中的相亲数问题如何解决?

大家好,在编程的学习过程中,是离不开算法的,那么算法究竟是什么呢?

其实,算法就好比解答一道数学题目的过程,拿到一道数学题目后,我们要做的首先是认真读一下题目,然后再脑海中列出可以解决的方案,最后再从这些方案中选出最简便又快捷的方式求解问题。

算法用计算机专业术语描述是:

算法是解决问题的有序步骤,其每一步都必须是确定的、可行的。

算法具有以下几个重要的特征:

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年冬季视频直播讲解课现在已经正式开始了,大家晚上有时间学习的话都可以进入课堂随时观看学习。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181109G1M9BG00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券