算法设计大赛T22-T24

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])

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值