题目 1:基础练习 时间转换
解题思路
取余,整除
代码
t = int(input())
print(t // 3600, end=':')
t = t % 3600
print(t // 60, end=':')
t = t % 60
print(t)
题目 2:基础练习 字符串对比
解题思路
if 判断
其中使用str.lower()
将字符串变为小写
代码
def contrast(str1, str2):
if len(str1) != len(str2):
return 1
elif str1 == str2:
return 2
elif str1.lower() == str2.lower():
return 3
elif str1.lower()!=str2.lower() and len(str1) == len(str2):
return 4
str1 = input()
str2 = input()
print(contrast(str1, str2))
题目 3:基础练习 分解质因数
解题思路
for
循环 + 递归
代码
result = {}
def decomposition(n):
res = ''
for i in range(2, n+1):
if n % i == 0:
res += str(i)
n = n // i
if n == 1:
return res
elif n in result.keys():
res += '*'
res += result[n]
return res
else:
res += '*'
res += decomposition(n)
return res
a, b = map(int, input().split())
for i in range(a, b+1):
result[i] = decomposition(i)
for k, v in result.items():
s = str(k) + '=' + str(v)
print(s)
题目 4:基础练习 矩阵乘法
解题思路
矩阵连乘,列表生成式
代码
N, M = map(int, input().split())
rect = [list(map(int,input().split())) for i in range(N)] # 列表生成式
rect_ans = [[0 for _ in range(N)] for _ in range(N)]
if M > 0:
rect_tmp = rect
# 计算矩阵幂
for _ in range(M-1):
for i in range(N):
for j in range(N):
for k in range(N):
rect_ans[i][j] += rect_tmp[i][k] * rect[k][j]
rect_tmp = rect_ans
else:
for i in range(N):
rect_ans[i][i] = 1
# 输出
for i in range(N):
for j in range(N):
print(rect_ans[i][j], end=' ')
print()