Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
123
返回列表 发新帖
楼主: 爱疯

一道面试题:有1-10亿数字的乱序数组,其中少一个数,怎么快速找到这个丢失的数

[复制链接]
发表于 2016-12-25 12:10 | 显示全部楼层
爱疯 发表于 2016-12-23 16:56
群子老师!
t = m + 1 '此为范围内2个数的均值

是这么思考的。

如果 1 连续相加到10亿,那么结果是=500000000500000000 肯定超过长整形范围了。

所以这么处理一下,可以保证临时相加值结果不太大。
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
回复

使用道具 举报

发表于 2016-12-25 19:38 | 显示全部楼层
香川群子 发表于 2016-12-25 11:53
这个简单吧,只要稍微修改一下:
假设有n1 To n2 的连续正整数区间,遗漏了1个数,需要遍历一次完成检查 ...

Sub test_1()
    Dim a(), b(), i&, s&, t&
    a = Array(1, 2, 3, 4, 5, 6, 7)
    b = Array(3, 2, 7, 1, 6, 5)

    t = 1 + 7
    If t Mod 2 Then Else s = t / 2        ' 那句的思路 捣鼓半天弄明白了 , 不过觉得 直接把中间的那个数配对 思路更清晰
    For i = 0 To 5
        s = s + b(i): s = s Mod t
    Next
  '  If t Mod 2 Then s = t - s Else s = t / 2 - s: If s < 0 Then s = t + s
     s = t - s

    MsgBox s
End Sub

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-3 04:56 , Processed in 0.273995 second(s), 8 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表