vb编程计算n的阶乘 力扣算法第1题两数之和
hello大家好,我是大学网网小航来为大家解答以上问题,vb编程计算n的阶
hello大家好,我是大学网网小航来为大家解答以上问题,vb编程计算n的阶乘,力扣算法第1题两数之和很多人还不知道,现在让我们一起来看看吧!
力扣算法(LeetCode)是一套非常优秀的算法练习题库,编程学习者通过刷力扣题可以有效地、快速的提高自己编程能力,准备参加一些企业的面试。初学者练习力扣算法题更是好处多多,可以学以致用、养成边学习边解决工程问题的习惯,有助于很快的提高自身的编程水平。
美中不足的是,绝大多数力扣的算法题都没有VB语言的官方答案,原因不详。这不能不说是一种遗憾。
(资料图片仅供参考)
今天我用VB语言给大家讲解力扣算法第1题,我们先看题干部分:
学完本课后会做的软件动图
给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出和为目标值 target 的那两个整数,并返回它们的数组下标。
你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。
你可以按任意顺序返回答案。
示例 1:
输入:nums = [2,7,11,15], target = 9输出:[0,1]解释:因为 nums[0] nums[1] == 9 ,返回 [0, 1] 。
示例 2:
输入:nums = [3,2,4], target = 6输出:[1,2]
示例 3:
输入:nums = [3,3], target = 6输出:[0,1]
官方给了两种解题思路:第一种思路是暴力穷举法,也是本课的解题方法。第二种方法是哈希表法,宇哥比较笨,用VB字典法还没调试出来。。等调试出来再分享给大家。。
本课程的VB案例通过Access数据库呈现,课程讲解分为3个部分:
1.完整代码
2.需求讲解
3.代码讲解
—1—
完整代码
力扣算法第1题(两数之和)官方第一种答案的完整VBA代码(基于Access数据库)如下:
Option Compare DatabaseDim a(25) As Integer"代码改编自力扣算法第1题"力扣算法没有VB答案,我自己改编Private Sub Text2_AfterUpdate()Dim target As IntegerDim i As IntegerDim j As Integer target = Val(Nz(Text2)) "Text2录入数值,Text3输出答案 For i = 0 To 24 "遍历每一个a(i),寻找后面的数有没有a(j)=target-a(i) For j = i 1 To 24 "每次i遍历结束,j从i 1开始往后遍历 If target = a(i) a(j) Then Me.Text3.Value = "第" & i 1 & "个数字和" & Chr(13) _ & Chr(10) & "第" & j 1 & "个数字之和等于" & Text2 "注意每个下标要加1,因为数值第一个下标是0 Exit Sub "根据我的测试,VB里条件达成后不是自动退出循环,需要手动退出sub End If Next j Next i Me.Text3.Value = "老铁,没找到哈"End SubPrivate Sub Text2_Change() Me.Refresh End Sub
制作好的演示界面
—2—
需求讲解
根据老规矩,本题也要给他做成一个有人机交互、有输入和输出界面的Access窗体应用,主要有三项功能:
严禁用控制台输入和输出。
案例的窗体设计视图
—3—
代码讲解
生成25个不重复的、从小到大排序的数字,之前我曾经讲过这个技术用VB如何实现,现将代码分享如下:
Private Sub Command1_Click()Dim i As IntegerDim j As IntegerDim tempStr As String Text1 = "" tempStr = " "For i = 0 To 24 a(i) = Int(30 * Rnd) 1 For j = 0 To i - 1 "这段是防止重复的代码 If a(i) = a(j) Then "如果重复了再次选择 i = i - 1 End If Next j Next i "这段是排序,运用冒泡算法For i = 0 To 24 For j = i 1 To 24 If a(i) > a(j) Then t = a(i) "t作为中间变量,冒泡算法常见 a(i) = a(j) a(j) = t End If Next jNext iFor i = 0 To 24 Text1 = Text1 tempStr CStr(a(i)) "CStr转换成字符串 If (i 1) Mod 5 = 0 Then "逢5换行 tempStr = Chr(13) Chr(10) " " "换行 Else tempStr = " " End IfNext iEnd Sub
上面的代码是窗体里那个按钮“随机生成10个数”单击后,在下方生成25个数字的代码,可能显得很笨拙,但是用的都是最为可靠的技术,生成过程很简洁、清楚,在我的教程里会经常采用,建议吃透。
在此我再简略的过一遍这个随机数生成代码的含义:
第8行到第15行,生成随机数并进行去重操作;
第18行到第26行,冒泡排序;
第28行到第35行,把25个数进行分列,5个数字一行,一共5行。
下面讲解一下官方给的标准答案,一行一行吃透。
官方核心代码没有VB语言,被我弥补了这个空白
Option Compare DatabaseDim a(25) As Integer"代码改编自力扣算法第1题"力扣算法没有VB答案,我自己改编Private Sub Text2_AfterUpdate()Dim target As IntegerDim i As IntegerDim j As Integer target = Val(Nz(Text2)) "Text2录入数值,Text3输出答案
这一段主要是定义变量:
For i = 0 To 24 "遍历每一个a(i),寻找后面的数有没有a(j)=target-a(i) For j = i 1 To 24 "每次i遍历结束,j从i 1开始往后遍历 If target = a(i) a(j) Then Me.Text3.Value = "第" & i 1 & "个数字和" & Chr(13) _ & Chr(10) & "第" & j 1 & "个数字之和等于" & Text2 "注意每个下标要加1,因为数值第一个下标是0 Exit Sub "根据我的测试,VB里条件达成后不是自动退出循环,需要手动退出sub End If Next j Next i
这段代码是官方“暴力枚举”的核心代码,用了跟制作九九乘法表类似的两次For循环。
基本思想就是第一个数下标为i,然后遍历每一个a(i),寻找后面的数有没有a(j)=target-a(i),比如我们要找数字6,数组里第1个数是2,于是a(1)=2,下面要做的,就是j的事了,
j永远从比i大一位的数字开始找,因为题干不允许自己和自己相加。j=2时,a(2)=3,于是2 3=5不等于6,j就接着往下找,j=3时,a(3)=4,2 4=6,target就等于6,答案就得出来了,i=1,第一个数为1,j=3,第二个数为3,输出答案就是[1,3]。
如果i=1的情况,j所有下标的数组a(j)和a(i)相加都不等于结果target,那么程序自动选择i=2的下标,继续循环往复上面的过程,直到找到答案。如果找不到答案,那么要返回[0,0]。
Me.Text3.Value = "老铁,没找到哈"End Sub
在我的案例里,直接返回一段话“老铁,没找到”。
需要特别注意的是,力扣官方答案里,都是Java、C、C 的,这些语言里一旦找到答案后,直接中断循环过程,跳出循环。但是VB需要特别注意,找到答案后要输入Exit Sub手动结束循环。
本文就为大家讲解到这里,希望对大家有所帮助。
关键词:
hello大家好,我是大学网网小航来为大家解答以上问题,vb编程计算n的阶
App7月1日消息,近日从广东省医疗保障局获悉,目前,广东已实现跨省异
注:全都是最新数据,虽然报告的年份有差,比如说有些学校是2021年,有
1、登入当地国税局官网网上纳税平台输入企业税号跟登入密码进入申报界
hello大家好,我是价值网小科来为大家解答以上问题,零下八度表示什么
游戏中有各种各样的策略你需要知道。只有知道了策略,才能快速取得游戏
本文编辑剧透社:issac怀念!香港知名女星罗慧娟,在2012年六月底,因
饮冰室是什么意思?饮冰室指梁启超故居书斋。书斋“饮冰室”为浅灰双层
明星与网红看似关系不大,也不是一个圈子,实则相互牵连,内有乾坤。如
首先,判断自身情况是否属于对方应返还定金的情形,若是,可通过法律途
原标题:【发车!成都⇋香港】一路“香”伴!今天起,坐着高铁打卡蓉港
岳阳你美医疗美容医院岳阳你美医疗美容医院源于香港医疗美容集团,总部
App7月2日消息,据水利部消息,7月1日8时至2日8时,贵州乌江支流青场河
诸多的对于浸塑荷兰网工艺,浸塑荷兰网这个问题都颇为感兴趣的,为大家
1、《民航国内国际客票销售》是2015年国防工业出版社出版的图书。2、。
其中C系列交付11600+台,占比超87%;C11车系交付8900+台,位居B级新势
1、“情深不寿慧极必伤”的下一句是:强极则辱,谦谦君子,温润如玉。2
中央气象台预计,7月2日20时至3日20时,四川盆地东部和南部、陕西南部
今天小红来为大家带来的是怎么用比例尺,如何用比例尺画图,让我们一起
“7月1日,‘复兴号’动车组将开上青藏铁路西格段,青藏铁路正式进入‘
对于适合520告白的文案这个问题感兴趣的朋友应该很多,这个也是目前大
1、淫羊藿Epimediumbrevicornu Maxim 小檗科 Berberidaceae 淫羊藿属别名:淫
7月1日,香港各界举行多姿多彩的活动庆祝香港回归祖国26周年。从庄严肃
2023年6月30日,携程集团宣布推出全球员工的生育补贴政策——“程二代
证券时报e公司讯,中国重汽(000951)(000951)7月2日晚公告,预计上半年
Copyright 2015-2022 热讯酒业网 版权所有 备案号:豫ICP备20005723号-6 联系邮箱:29 59 11 57 8@qq.com