美团在线笔试题

美团笔试题:
从一个数组中随机找出两个数然后拼接成一个数,计算拼接组成的数中,有多少能整除7?

#coding:utf-8
import sys

if __name__ == "__main__":
    while 1:
        try:
            n=raw_input()
            n = int(n)
            num_list=raw_input().split()
        except:
            break
        len_list=[len(i) for i in num_list]
        len_set=list(set(len_list))
        num_list = map(int, num_list)
        num_remainder_list=[i%7 for i in num_list]
        count=0
        for i in range(n):
            tmp_product_list=[num*10**len_list[i] for num in num_list]
            tmp_product_remainder_list=[product % 7 for product in tmp_product_list]
            sum_remainder_list = map(lambda x: x + num_remainder_list[i], tmp_product_remainder_list)
            sum_list= map(lambda x: x + num_list[i], tmp_product_list)
            for j in range(n):
                if j==i:
                    continue
                if sum_remainder_list[j] ==7:
                    count+=1
                    print count,sum_list[j]
            """
            count += add_remainder_list.count(7)
            if add_remainder_list[i] == 7:
                count -= 1
            print count
            """
        print 'anwser:',count

输出:

n: 3
num_list: ['127', '1996', '12']
count: 1 sum: 1996127 num_1: 1996 num_2: 127
count: 2 sum: 121996 num_1: 12 num_2: 1996
count: 3 sum: 12712 num_1: 127 num_2: 12
count: 4 sum: 199612 num_1: 1996 num_2: 12
anwser: 4
n: 13
num_list: ['127', '1996', '12', '13', '14', '15', '16', '17', '18', '12222', '3', '1', '34']
count: 1 sum: 1996127 num_1: 1996 num_2: 127
count: 2 sum: 15127 num_1: 15 num_2: 127
count: 3 sum: 1127 num_1: 1 num_2: 127
count: 4 sum: 121996 num_1: 12 num_2: 1996
count: 5 sum: 12712 num_1: 127 num_2: 12
count: 6 sum: 199612 num_1: 1996 num_2: 12
count: 7 sum: 1512 num_1: 15 num_2: 12
count: 8 sum: 112 num_1: 1 num_2: 12
count: 9 sum: 1813 num_1: 18 num_2: 13
count: 10 sum: 1715 num_1: 17 num_2: 15
count: 11 sum: 315 num_1: 3 num_2: 15
count: 12 sum: 1316 num_1: 13 num_2: 16
count: 13 sum: 3416 num_1: 34 num_2: 16
count: 14 sum: 1617 num_1: 16 num_2: 17
count: 15 sum: 1218 num_1: 12 num_2: 18
count: 16 sum: 133 num_1: 13 num_2: 3
count: 17 sum: 343 num_1: 34 num_2: 3
count: 18 sum: 161 num_1: 16 num_2: 1
count: 19 sum: 1834 num_1: 18 num_2: 34
anwser: 19

还有一道关灯的题,不过没做出来

posted @ 2017-09-14 23:35  机器狗mo  阅读(420)  评论(0)    收藏  举报