OD试题(八)

1.查找输入整数二进制中1的个数

描述:输入一个正整数,计算它在二进制下的1的个数。
注意多组输入输出!!!!!!
输入描述:输入一个整数
输出描述:计算整数二进制中1的个数
示例1:
输入:5
输出:2
说明:5的二进制表示是101,有2个1
参考代码:

import sys
for line in sys.stdin:
    a = line.split()[0]
    print(list(bin(int(a))).count('1'))

2. 计算日期到天数zhuanhuan

描述:根据输入的日期,计算是这一年的第几天。
保证年份为4位数且日期合法。
输入描述:输入一行,每行空格分割,分别是年,月,日
输出描述:输出是这一年的第几天
示例1:
输入:2012 12 31
输出:366
示例2:
输入:1982 3 4
输出:63
参考代码:

import sys
for line in sys.stdin:
    year,month,day = line.split()
    total = 0
    for m in range(1,int(month)):
        if int(m) in [1,3,5,7,8,10,12]:
            total += 31
        elif int(m) in [4,6,9,11]:
            total += 30
        if int(m) == 2:
            if int(year) % 4 == 0 and (int(year) % 100 != 0 or int(year) % 400 == 0):
                total += 29
            else:
                total += 28
    total += int(day)
    print(total)

3. 整型数组合并

描述:
题目标题:
将两个整型数组按照升序合并,并且过滤掉重复数组元素。
输出时相邻两数之间没有空格。
输入描述:
输入说明,按下列顺序输入:
1 输入第一个数组的个数
2 输入第一个数组的数值
3 输入第二个数组的个数
4 输入第二个数组的数值
输出描述:
输出合并之后的数组
示例1:
输入:
3
1 2 5
4
-1 0 3 2
输出:
-101235
参考代码:

import sys
tmp = []
for line in sys.stdin:
    a = line.split()
    tmp.append(a)
t = list(set(tmp[1] + tmp[3]))
t = [ int(_) for _ in t]
t.sort()
t = [str(_) for _ in t]
print(''.join(t))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值