今天的计算机课上,老师给同学们出了一道题:
输入n个数,请将其中的偶数的二进制反转。
eg:输入1 6 5
其中6是偶数,二进制表示为110,反转后为011,代表3,所以最终输出1 3 5.
小贱君最近脑子不怎么好使,想了半天也没想出来如何做,最后他向你寻求帮助了,帮帮可怜的小贱君吧!

输入描述:

输入包含多组测试数据。

对于每组测试数据:

N — 输入的数字个数

N个数:a0,a1,…,an-1

保证:

1<=N<=3000,0<=ai<=INT_MAX.

输出描述:

对于每组数据,输出N个整数。

输入例子:

5
1 3 10 6 7
6
26 52 31 45 82 34

输出例子:

1 3 5 3 7
11 11 31 45 37 17

1 收藏


直接登录
最新评论
  • 豪满   01/01

    #python code

    # -*- coding: UTF-8 -*-
    import random
    from string import maketrans

    trans = maketrans(’01’, ’10’)
    #随机生成n个元素的数组
    def random_array(n, rmin, rmax):
    return [random.randint(rmin, rmax) for i in range(n)]

    def transbin(array):
    print “array:”, array
    print “二进制反转之后:”, [int(bin(i)[2:].translate(trans), 2) if i%2==0 else i for i in array]

    ##测试
    transbin(random_array(10, 0, 5))

     

  • 豪满   01/01