判断整数_VBAExcel实例系列——连续整数判断
excel数组函数的实例Part 1:写在前⾯的话
1. 解释⼀下题⽬:⼀组整数1,2,3,4,6,8,9,10,是否存在4个连续整数,答案为是;是否存在5个连续整数,答案为否
2. 应⽤场景:当某种现象连续出现5次,则认为异常,否则为正常现象
3. 形象点场景:⼀⼯⼚⽣产泡⾯,进⾏机器⾃动检查其重量并记录检测时间及重量数据到后台
问题:假设如果连续5次重量不⾜,则说明有异常,需要检查⽣产线
当然现在很多监控设备已经有⾃动预警功能,假设这个⼯⼚⽐较low,没有这个功能
只能采取定期对数据进⾏检查
你获取了这些数据,如何发现异常?
1. 解决⽅法:时间信息相当于这些重量数据的标签,根据时间前后,把其替换为连续的整数。只保留不合格重量的标签,这样就得到⼀
组整数,回到该开始的题⽬
2. 哈哈,有没有点晕?
Part 2:解决问题逻辑过程
1. 何为连续整数,对于排序好的整数,前后相减为1,则连续整数为2个
2. 有⼀组排序好的整数(升序),前后相减,得到另外⼀个数组,有m个连续的1,则有m+1个连续的整数
3. 具体实现:建⽴⼀个函数,输⼊参数2个。需判断的数组arr,及有多少个连续整数n,函数返回结果为“是”或者“否”。具体如下
初始化函数为“否”
判断数组长度,⼩于需要判断个数n,则直接返回“否”
设置计算器counter,并初始化为0,counter为计算相减后连续1的个数,达到n-1则返回“是”
每次遇到差值不为1,则counter置为0,这样统计出来的才是连续整数的个数
1. 要求传⼊函数中的数组已按照升序排序
Part 3:代码
Sub test()  Rem>>主程序 Rem>> arr1 = Array(1, 3, 4, 6, 8, 10, 11, 12, 16) arr2 = Array(1, 3, 4, 6, 9, 10, 11, 12, 16) arr3 = Array(2, 3, 4, 5, 6, 7, 11, 12, 16) n = 5 e 执⾏结果

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。