中文 wordpress,肇庆seo排名外包,外链互换平台,百度快速排名用是一:比较月亮大小 题目描述 小理是一名出色的狼人。众所周知#xff0c;狼人只有在满月之夜才会变成狼。 同时#xff0c;月亮的大小随着时间变化#xff0c;它的大小变化 3030 天为一循环。 它的变化情况(从第一天开始)为 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,14,13,12,1…一:比较月亮大小 题目描述 小理是一名出色的狼人。众所周知狼人只有在满月之夜才会变成狼。 同时月亮的大小随着时间变化它的大小变化 3030 天为一循环。 它的变化情况(从第一天开始)为 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1 然后又再一次循环。 今年夏天小理很无聊于是开始看月亮。由于小理很忙所以他只选择一段连续的时间看月亮并把月亮的大小记录了下来。 现在他告诉你他记录下的东西让你告诉他下一天(即小理记录下的最后一天的第二天)的月亮是比前一天(即小理记录下的最后一天)大还是小。输入格式 给你一个正整数 n 表示点点记录下的时间个数。 下一行 n 个自然数表示点点记录下的月亮大小。输出格式 一个字符串。 如果下一天的比前一天的大则输出UP 如果下一天的比前一天的小则输出DOWN 如果无法判断则输出 −1 。样例输入输出 样例输入#1 5 3 4 5 6 7样例输出#1 UP样例输入#2 8 12 13 14 15 14 13 12 11样例输出#2 DOWN样例输入#3 1 8样例输出#3 -1数据范围 对于 100% 的数据保证 1≤n≤100,0≤ai≤15 。 保证输入的数据满足月亮变化的循环规律。 来源/分类(难度系数一星)数组 模拟
完整代码展示 aint(input()) blist(map(int,input().split())) if len(b)2: if b[-1]b[-2]: if b[-1]!15: print(UP) else: print(DOWN) elif b[-1]b[-2]: if b[-1]!0: print(DOWN) else: print(UP) else: print(-1)
aint(input())
blist(map(int,input().split()))
if len(b)2:if b[-1]b[-2]:if b[-1]!15:print(UP)else:print(DOWN)elif b[-1]b[-2]:if b[-1]!0:print(DOWN)else:print(UP)
else:print(-1)
代码解释 “aint(input()) blist(map(int,input().split())) ”导入用户观察的天数a,接着依次导入用户观察到的月亮大小并将其储存在列表b中。 “if len(b)2: if b[-1]b[-2]: if b[-1]!15: print(UP) else: print(DOWN) elif b[-1]b[-2]: if b[-1]!0: print(DOWN) else: print(UP) else: print(-1) ”判断列表b的长度是否大于等于2,如果是则按判断顺序判断月亮是在变大或变小并打印结果。
运行效果展示 二:数组下标 题目描述 给出一个数列 A 求出一个数列 B 。 其中 Bi 表示数列 A 中 Ai 右边第一个比 Ai 大的数的下标(从 1 开始计数),没有找到这一个下标 Bi 就为 0 。 输出数列 B 。输入格式 第一行 1 个数字 n 。 第二行 n 个数字第 i 个数字为 Ai 。输出格式 一共一行第 i 个数和第 i1 个数中间用空格隔开。样例输入输出 样例输入 6 3 2 6 1 1 2样例输出 3 3 0 6 6 0数据范围 对于 100% 的数据保证 1≤n≤104,0≤Ai≤109 。 来源/分类难度系数一星 循环递归 每日一题
完整代码展示 aint(input()) blist(map(int,input().split())) c0 d[] while clen(b): eb[:] f[] for i in range(c1,len(e)): if e[i]e[c]: f.append(i1) d.append(f) c1 for j in range(0,len(d)): if len(d[j])0: print(0,end ) else: print(d[j][0],end )
aint(input())
blist(map(int,input().split()))
c0
d[]
while clen(b):eb[:]f[]for i in range(c1,len(e)):if e[i]e[c]:f.append(i1)d.append(f)c1
for j in range(0,len(d)):if len(d[j])0:print(0,end )else:print(d[j][0],end )
代码解释 “aint(input()) blist(map(int,input().split())) ”导入用户的数组元素数量a,接着依次导入用户给定的数组元素并将其储存在列表b中。 “c0 d[] while clen(b): eb[:] f[] for i in range(c1,len(e)): if e[i]e[c]: f.append(i1) d.append(f) c1 ”令c为循环密码子,初始值为0接着建立一个空列表b用于储存数组中任意元素右侧比该元素大的元素下标。当clen(b)时复制b赋给e,建立一个空列表f,接着依次遍历e中e[c1]~e[len(e)-1]元素e[i]判断e[i]是否大于e[c],如果是则将下标添加进f中。遍历结束后将f添加进d中。每循环一次c1直至clen(b)跳出整个while循环。 “for j in range(0,len(d)): if len(d[j])0: print(0,end ) else: print(d[j][0],end ) ”,依次遍历d中元素,判断d[j]是否为空列表如果是则打印”0”,以空格结尾否则打印d[j][0],以空格结尾。
运行效果展示 三:人见人爱ab 题目描述 北大的acm上面已经有 10 来道 AB 的题目了相信这些题目曾经是大家的最爱希望今天的这个 AB 能给大家带来好运也希望这个题目能唤起大家对ACM曾经的热爱。 这个题目的 A 和 B 不是简单的整数而是两个时间 A 和 B 都是由 3 整数组成分别表示时分秒比如假设 A 为 34 45 56 就表示 A 所表示的时间是 34 小时 45 分钟 56 秒。输入格式 输入数据有多行组成首先是一个整数 N 表示测试实例的个数然后是 N 行数据每行有 6 个整数 AH,AM,AS,BH,BM,BS 分别表示时间 A 和 B 所对应的时分秒。 题目保证所有的数据合法。输出格式 对于每个测试实例输出 AB 每个输出结果也是由时分秒 3 部分组成同时也要满足时间的规则即分和秒的取值范围在 0∼59 每个输出占一行并且所有的部分都可以用 32 位整数表示。样例输入输出 样例输入 1 1 2 3 4 5 6样例输出 5 7 9来源/分类难度系数:一星
数组 每日一题 完整代码展示 aint(input()) b[] for i in range(a): clist(map(int,input().split())) b.append(c) d0 while dlen(b): sum3600*(b[d][0]b[d][3])60*(b[d][1]b[d][4])(b[d][2]b[d][5]) esum//3600 f(sum-3600*e)//60 gsum-3600*e-60*f print(e,f,g) d1
aint(input())
b[]
for i in range(a):clist(map(int,input().split()))b.append(c)
d0
while dlen(b):sum3600*(b[d][0]b[d][3])60*(b[d][1]b[d][4])(b[d][2]b[d][5])esum//3600f(sum-3600*e)//60gsum-3600*e-60*fprint(e,f,g)d1
代码解释 “aint(input() “导入用户需处理的数据组数a。 “b[] for i in range(a): clist(map(int,input().split())) b.append(c) ”建立一个空列表b。循环a次导入用户的一组数据六个整数。并将其储存在列表c中接着将c添加进b中。 “d0 while dlen(b): sum3600*(b[d][0]b[d][3])60*(b[d][1]b[d][4])(b[d][2]b[d][5]) esum//3600 f(sum-3600*e)//60 gsum-3600*e-60*f print(e,f,g) d1 ”令d为循环密码子初始值为0。当dlen(b)时奖b[d]中数据转换为秒数接着再将秒数转换为合法时间e为小时数f为分钟数g为秒钟数打印e,f,g。每循环一次d1直至dlen(b)跳出整个while循环。
运行效果展示 声明以上内容均为原创