一个98位自然数数组,在1-100内怎么知道那两个数字不在数组中?要具体的代码实现,最好能考虑到效率问题。

2025-02-28 15:19:55
推荐回答(1个)
回答1:

建立一个100位自然数数组b[100]
然后给出的98位数组是a[98]
赋值,b[n]=n+1
(就是说b[0]=1,b[1]=2,...b[99]=100)
将a[n]从小到大排列一下,
(比如把原来a[0]=3,a[1]=2,a[2]=1,给改成
a[0]=1,a[1]=2,a[2]=3)

然后从n=0开始比对a[n]和b[n]一直比对到n=97
如果,a[n]==b[n]
那么,继续比对a[n+1]和b[n+1]
如果a[n]<>b[n]
那么,继续比对a[n]和b[n+1]
同时输出n+1
如果,a[n]==b[n+1]
那么,继续比对a[n+1]和b[n+2]
如果a[n]<>b[n+1]
输出n+2
如果a[97]=99,那么输出100
最后输出的两个数就是差的两个数