时间转换:
题目:
资源限制
时间限制:1.0s 内存限制:512.0MB
问题描述
给定一个以秒为单位的时间t,要求用“<H>:<M>:<S>”的格式来表示这个时间。<H>表示时间,<M>表示分钟,而<S>表示秒,它们都是整数且没有前导的“0”。例如,若t=0,则应输出是“0:0:0”;若t=3661,则输出“1:1:1”。
输入格式
输入只有一行,是一个整数t(0<=t<=86399)。
输出格式
输出只有一行,是以“<H>:<M>:<S>”的格式所表示的时间,不包括引号。
样例输入
0
样例输出
0:0:0
样例输入
5436
样例输出
1:30:36
代码:
s = int(input())
if s >= 0 and s <= 86399:
H = s//3600
s = s - H*3600
M = s//60
s = s - M*60
print("{}:{}:{}".format(H, M, s))
num = int(input())#输入及字符转为整型
m,s=divmod(num,60)#整数赋值给m,余数赋值给s
h,m=divmod(m,60)#同理
print("{}:{}:{}".format(h,m,s))#格式化输出
while True:
try:
t = int(input())
h = t // 3600
m = t%3600 // 60
s = t % 3600 % 60
print(str(h)+':'+str(m)+':'+str(s))
except:
break
t = int(input())
a = 0
b = 0
c = 0
a = int(t/3600)
b = int((t%3600)/60)
c = int((t%3600)%60)
print(str(a)+":"+str(b)+":"+str(c))
注:
法三和法四使用字符串转换
字符串对比:
题目:
资源限制
时间限制:1.0s 内存限制:512.0MB
问题描述
给定两个仅由大写字母或小写字母组成的字符串(长度介于1到10之间),它们之间的关系是以下4中情况之一:
1:两个字符串长度不等。比如 Beijing 和 Hebei
2:两个字符串不仅长度相等,而且相应位置上的字符完全一致(区分大小写),比如 Beijing 和 Beijing
3:两个字符串长度相等,相应位置上的字符仅在不区分大小写的前提下才能达到完全一致(也就是说,它并不满足情况2)。比如 beijing 和 BEIjing
4:两个字符串长度相等,但是即使是不区分大小写也不能使这两个字符串一致。比如 Beijing 和 Nanjing
编程判断输入的两个字符串之间的关系属于这四类中的哪一类,给出所属的类的编号。
输入格式
包括两行,每行都是一个字符串
输出格式
仅有一个数字,表明这两个字符串的关系编号
样例输入
BEIjing
beiJing
样例输出
3
代码:
s1 = str(input())
s2 = str(input())
len1 = len(s1)
len2 = len(s2)
if len1 != len2:
print("1")
else:
if s1 == s2:
print("2")
elif s1.lower() == s2.lower():
print("3")
elif s1.lower() != s2.lower():
print("4")
import re
def judge(s1, s2):
if len(s1) != len(s2):
return 1
if s1 == s2:
return 2
if len(s1) == len(s2):
if re.search(s1,s2,re.IGNORECASE):
return 3
else:
return 4
print(judge(input(),input()))
注:
关于法二中的re模块:
re.IGNORECASE是compile函数中的一个匹配模式。
re.IGNORECASE的意思就是忽略大小写。
爬虫中运用比较多
分解质因数:
题目:
资源限制
时间限制:1.0s 内存限制:512.0MB
问题描述
求出区间[a,b]中所有整数的质因数分解。
输入格式
输入两个整数a,b。
输出格式
每行输出一个数的分解,形如k=a1*a2*a3...(a1<=a2<=a3...,k也是从小到大的)(具体可看样例)
样例输入
3 10
样例输出
3=3
4=2*2
5=5
6=2*3
7=7
8=2*2*2
9=3*3
10=2*5
提示
先筛出所有素数,然后再分解。
数据规模和约定
2<=a<=b<=10000
代码:
# 判断素数
def primeNumber(n):
for i in range(2,int(n**0.5)+1):
if n % i == 0:
return False
else:
return True
#质因数分解
def qualityDecomposition(tmp):
for i in range(2, tmp + 1):
if tmp % i == 0:
tmp = tmp // i
tmpL.append(i)
qualityDecomposition(tmp)
break
# 输入
num = input().split()
a = int(num[0])
b = int(num[1])
while a != b+1:
tmpL = [] # 存放质因数
if primeNumber(a):
print("{}={}".format(a, a))
else:
print("{}=".format(a, a),end="")
qualityDecomposition(a)
for i in range(len(tmpL)):
print(tmpL[i],end='')
if i == len(tmpL) - 1:
print('')
else:
print("*",end='')
a += 1
矩阵乘法:
题目:
资源限制
时间限制:1.0s 内存限制:512.0MB
问题描述
给定一个N阶矩阵A,输出A的M次幂(M是非负整数)
例如:
A =
1 2
3 4
A的2次幂
7 10
15 22
输入格式
第一行是一个正整数N、M(1<=N<=30, 0<=M<=5),表示矩阵A的阶数和要求的幂数
接下来N行,每行N个绝对值不超过10的非负整数,描述矩阵A的值
输出格式
输出共N行,每行N个整数,表示A的M次幂所对应的矩阵。相邻的数之间用一个空格隔开
样例输入
2 2
1 2
3 4
样例输出
7 10
15 22
代码:
while True:
try:
def matrix_mul(matrix1,matrix, n):
c = [[0 for m1 in range(n)]for m in range(n)]
for i in range(n):
for j in range(n):
for k in range(n):
c[i][j] += matrix1[i][k] * matrix[k][j]
return c
n = list(map(int, input().split()))
s = []
result = s
for j in range(n[0]):
s.append(list(map(int, input().split())))
if n[1] == 0:
for i in range(0, n[0]):
for j in range(0, n[0]):
if i == j:
result[i][j] = 1
else:
result[i][j] = 0
else:
for k in range(n[1]-1):
result = matrix_mul(result,s,n[0])
for i in range(0, result.__len__()) :
for j in range(0, result[i].__len__()) :
print(result[i][j],'', end='')
print('')
except:
break