T22 问题描述 现在时间是 a 点 b 分,请问 t 分钟后,是几点几分? 输入格式输入的第一行包含一个整数 a。 第二行包含一个整数 b。 第三行包含一个整数 t。 输出格式输出第一行包含一个整数,表示结果是几点。 第二行包含一个整数,表示结果是几分。
思路:
60min化为1h,24h转化为后一天,当时超过24或分超过60时,分别减24或60,直至符合规范为止
a = eval(input())
b = eval(input())
t = eval(input())
a = a + t // 60
b = b + t % 60
while b >= 60:
b -= 60
a += 1
while a >= 24:
a -= 24
print(a)
print(b)
两个字母之间的距离定义为它们在字母表中位置的距离。 例如 A 和 C 的距离为 2,L 和 Q 的距离为 5。 对于一个字符串,我们称字符串中两两字符之间的距离之和为字符串的内部距离。 例如:ZOO 的内部距离为 22,其中 Z 和 O 的距离为 11。 请问,WATJKJDXRGZNXYTW 的内部距离是多少
思路:
题目中字母间的距离即为字母对应ASCII码的距离,由于题目给定数据全部为大写字母,故无需用upper进行转换。二指针遍历给定s,res累加即可。
结果为 1132
s = "WATJKJDXRGZNXYTW"
res = 0
for i in range(len(s)):
for j in range(i,len(s)):
res += abs(ord(s[i])-ord(s[j]))
print(res)
小明刚刚看完电影《第 39 级台阶》,离开电影院的时候,他数了数礼堂前的台阶数, 恰好是 39 级! 站在台阶前,他突然又想着一个问题: 如果我每一步只能迈上 1 个或 2 个台阶。先迈左脚,然后左右交替,最后一步是迈右脚,也 就是说一共要走偶数步。那么,上完 39 级台阶,有多少种不同的上法呢? 请你利用计算机的优势,帮助小明寻找答案
思路:
采用动态规划的方法,右脚踏上第 i 阶台阶,需在第 i-1 阶台阶迈出右脚,或在 i-2 阶台阶迈出右脚,故右脚迈上第i 阶的方法等于左脚迈上 i-1 阶的方法加上左脚迈上第 i-2 阶的方法。
使用 l[i] 和 r[i] 分别记左脚、右脚迈上第 i 阶台阶的可行方法,循环39次,找出第39阶台阶为右脚的方法次数,代码如下:
结果为 51167078
l = [0 for _ in range(39)]
r = [0 for _ in range(39)]
l[0],l[1] = 1, 1
r[0],r[1] = 0, 1
for i in range(2,39):
l[i] = r[i-2] + r[i-1]
r[i] = l[i-1] + l[i-2]
print(r[-1])