第十二届蓝桥杯省赛第一场C++A/B/C组真题(节选)

网友投稿 832 2022-11-05

第十二届蓝桥杯省赛第一场C++A/B/C组真题(节选)

第十二届蓝桥杯省赛第一场C++A/B/C组真题(节选)

文章目录

​​一、时间显示​​​​二、 砝码称重​​​​三、杨辉三角形​​

一、时间显示

小蓝要和朋友合作开发一个时间显示的网站。在服务器上,朋友已经获取了当前的时间,用一个整数表示,值为从 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 % 60s = 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。输入样例:31 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 combinationsfor 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+10for 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))

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:molten 是一个用Python构建HTTP API的迷你,可扩展,快速且高效的框架
下一篇:分组背包问题(DP)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~