欢乐赛#36 | 非官方Python题解
2024-12-24 20:34:45
发布于:北京
#创作计划(标题没地方了)
话不多说,直接上题解!
T1
这题还是很简单的,因为Python自带abs()
函数可以求绝对值
但如果不知道abs()
函数,也可以用if
进行转换
代妈如下:
a = abs(int(input())) #直接求绝对值
print(a) #输出结果
T2
这题很简单,用if else
就能解决
代码如下:
a = int(input()) #读取数据
if a % 4 == 0 and a % 6 == 0: #逻辑判断,如果都能整除即为YES,反之为NO
print("YES")
else:
print("NO")
T3
从这题开始就有一定难度,但还是入门难度
这题我将所有数据先转换成int
类型
然后用for
循环去让每个数增加自己的索引+1(因为Python索引从0开始)
最后再用for
循环输出每一项数据就可以通过了
代码如下:
s = input()
a = input().split() #读取数据
for t in a:
a[a.index(t)] = int(t) #转换成int类型
for i in range(len(a)):
a[i] = a[i] + i + 1 #让每个数增加自己的索引+1
for j in range(len(a)):
print(a[j],end=' ') #输出每一项数据
T4
这题用列表元素交换,轻松解决
代码如下:
n = int(input())
S1 = list(input())
S2 = list(input())
for i in range(0, n, 2):
S1[i], S2[i] = S2[i], S1[i] #列表元素交换
for j in range(len(S1)):
print(S1[j],end = '')
T5
这题先一个推导式,然后先处理横向边缘元素,最后用for
处理纵向边缘元素直接过
代码如下:
n = int(input())
A = [list(map(int, input().split())) for _ in range(n)] #推导式
s = 0
s += sum(A[0]) #处理横向边缘元素
s += sum(A[n-1])
for i in range(1, n-1):
s += A[i][0] #用for处理纵向边缘元素
for j in range(1, n-1):
s += A[j][n-1]
print(s)
T6
这就是压轴题?
轻松,直接import math
,用它的gcd
轻松过
代码如下:
import math
T = int(input())
for _ in range(T):
x, y, a, b = map(int, input().split())
result = math.gcd(math.gcd(x, y), math.gcd(a, b))
print(result)
求周边!
全部评论 3
顶
2024-12-23 来自 北京
0顶
2024-12-23 来自 北京
0顶
2024-12-23 来自 北京
0
有帮助,赞一个