文章目录
一、时间显示
小蓝要和朋友合作开发一个时间显示的网站。
在服务器上,朋友已经获取了当前的时间,用一个整数表示,值为从 1970 年 1 月 1 日 00:00:00 到当前时刻经过的毫秒数。
现在,小蓝要在客户端显示出这个时间。
小蓝不用显示出年月日,只需要显示出时分秒即可,毫秒也不用显示,直接舍去即可。
给定一个用整数表示的时间,请将这个时间对应的时分秒输出。
输入格式
输入一行包含一个整数,表示时间。
输出格式
输出时分秒表示的当前时间,格式形如 HH:MM:SS,其中 HH 表示时,值为 0 到 23,MM 表示分,值为 0 到 59,SS 表示秒,值为 0 到 59。
时、分、秒不足两位时补前导 0。
数据范围
对于所有评测用例,给定的时间为不超过 1018 的正整数。
输入样例1:
46800999
输出样例1:
13:00:00
输入样例2:
1618708103123
输出样例2:
01:08:23
# 法一
t = int(input()) // 1000 # 秒数
days = t // (24*60*60) # 度过的天数
t -= days * 24 * 60 *60 # 不足一天剩余的秒数
# 将秒数转换为 HH:MM:SS
# h = t // 3600
# m = (t-h*3600) // 60
# s = t-h*3600-m*60
# -------------知道秒数转时分秒-------------
h = t // 3600
m = t // 60 % 60
s = t % 60
# -------------知道秒数转时分秒-------------
print('{:0>2}:{:0>2}:{:0>2}'.format(h,m,s))
# # 法二
# t = int(input()) // 1000 # 秒数
# from time import strftime
# from time import gmtime
# print(strftime("%H:%M:%S", gmtime(t)))
二、 砝码称重
你有一架天平和 N 个砝码,这 N 个砝码重量依次是 W1,W2,⋅⋅⋅,WN。
请你计算一共可以称出多少种不同的正整数重量?
注意砝码可以放在天平两边。
输入格式
输入的第一行包含一个整数 N。
第二行包含 N 个整数:W1,W2,W3,⋅⋅⋅,WN。
输出格式
输出一个整数代表答案。
数据范围
对于 50% 的评测用例,1≤N≤15。
对于所有评测用例,1≤N≤100,N 个砝码总重不超过 105。
输入样例:
3
1 4 6
输出样例:
10
样例解释
能称出的 10 种重量是:1、2、3、4、5、6、7、9、10、11。
1 = 1;
2 = 6 − 4 (天平一边放 6,另一边放 4);
3 = 4 − 1;
4 = 4;
5 = 6 − 1;
6 = 6;
7 = 1 + 6;
9 = 4 + 6 − 1;
10 = 4 + 6;
11 = 1 + 4 + 6。
n = int(input())
lis = []
for i in input().split():
i = int(i)
lis.append(i)
lis.append(-i)
s = set()
from itertools import combinations
for i in range(2*n):
for j in combinations(lis,i):
# print(j)
if sum(j) >= 1:
# print(sum(j))
s.add(sum(j))
print(len(s))
三、杨辉三角形
下面的图形是著名的杨辉三角形:
QQ截图20210423150438.png
如果我们按从上到下、从左到右的顺序把所有数排成一列,可以得到如下数列:
1, 1, 1, 1, 2, 1, 1, 3, 3, 1, 1, 4, 6, 4, 1, ...
给定一个正整数 N,请你输出数列中第一次出现 N 是在第几个数?
输入格式
输入一个整数 N。
输出格式
输出一个整数代表答案。
数据范围
对于 20% 的评测用例,1≤N≤10;
对于所有评测用例,1≤N≤109。
输入样例:
6
输出样例:
13
n = int(input())
lis = [[1],[1,1]]
N = n+10
for i in range(2,N):
tem = [1,]
for j in range(i-1):
tem.append(lis[-1][j]+lis[-1][j+1])
tem.append(1)
lis.append(tem)
# 把lis拉平
flat = []
for i in range(N):
flat.extend(lis[i])
print(flat.index(n))