首页 > 试题广场 >

丢失的三个数

[编程题]丢失的三个数
  • 热度指数:31262 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
现在有一个数组,其值为从 1 到 10000 的连续增长的数字。出于某次偶然操作,导致这个数组中丢失了某三个元素,同时顺序被打乱,现在需要你用最快的方法找出丢失的这三个元素,并且将这三个元素根据从小到大重新拼接为一个新数字,计算其除以 7 的余数。 例:丢失的元素为336 ,10 ,8435 ,得到的新数字为 103368435 ,除以七的余数为 2 。

输入描述:
输入数据为一行,包含9997个数字,空格隔开。


输出描述:
输出为一行,包含一个数字。
示例1

输入

同题设例子输入

输出

2
a=[int(n) for n in input().split()]
a.sort()
b=[]
for i in range(0,len(a)-1):
    if a[i+1]-a[i]>1:
        b.append(a[i]+1)
num=int(''.join(map(str,sorted(b))))
print(num%7)
发表于 2019-01-11 19:37:20 回复(0)
array=list(map(int,input().split()))
d10000=set(range(1,10001))#创建1-10000的set集合
loss=sorted(list(d10000-set(array)))#求出差集,即缺失的元素
new=int(''.join([str(i) for i in loss]))#得到新数字
print(new%7)#输出余数

发表于 2018-06-26 15:57:00 回复(0)
发表于 2018-05-25 11:34:11 回复(0)
l=set(range(1,10001))
s=set([int(x) for x in input().split()])
x,y,z=l-s

m=[]
if x<y:
    m.append(x)
    m.append(y)
else:
    m.append(y)
    m.append(x)

if z>m[-1]:m.append(z)
elif z<m[0]:m=[z]+m
else:m=[m[0]]+[z]+[m[1]]

x,y,z=[str(x) for x in m]
new=x+y+z
print(int(new)%7)

发表于 2018-05-22 22:27:23 回复(0)
这里把输入放到一个set中,而不是list中,AC时间从875ms减少为41ms。
nums = set(map(int, input().split()))
losts = ''
for i in range(1, 10001):
    if i not in nums:
        losts += str(i)
print(int(losts) % 7)

发表于 2018-04-10 06:58:56 回复(0)
#初学者的python代码
import sys
while True:
    try:
        sum1=''
        str1=map(int,raw_input().split())
        str1=set(str1)
        str2=[i for i in range(1,10001)]
        str2=set(str2)
        num=str2-str1
        num1=[i for i in num]
        num1.sort()
        for i in range(len(num1)):
            sum1=sum1+str(num1[i])
        sum1=int(sum1)
        result=sum1%7
        print result
    except:
        break

发表于 2018-04-02 18:35:10 回复(0)
diff_set = sorted(set(range(1, 10001))-set(map(int, sys.stdin.readline().strip().split())))
new_num = int(reduce(str.__add__, map(str, diff_set)))
print new_num % 7

发表于 2018-03-28 23:27:50 回复(0)
find_array = input().split()
list_num = [str(x) for x in range(1, 10001) if str(x) not in find_array]
print(int("".join(list_num))%7)

发表于 2017-11-06 20:25:18 回复(0)
python 直接暴力就过了

if __name__ == '__main__':
   numberlist = input().split(' ')
   losenumber = []
   for i in range(1,10000):
       tempnumber = str(i)
       if tempnumber not in numberlist:
           losenumber.append(i)
           if len(losenumber) == 3:
               break
   losenumber.sort()
   x = ""
   for j in range(len(losenumber)):
       x += str(losenumber[j])
   end = int(x)%7
   print (end)
           

发表于 2017-10-13 20:09:31 回复(0)

python 6行足矣,accept代码如下:

a=list(map(int,input().split()))
notExists=[]
for i in range(1,10001):
    if a[0]==i:a.pop(0)
    else:notExists.append(i)
print(int("".join(list(map(str,sorted(notExists)))))%7)
发表于 2017-09-07 11:06:35 回复(10)