快速幂
def power_mod(a,b,m):
result=1
a%=m
while b>0:
if b%2==1:
result=(result*a)%m
a=(a*a)%m
b//=2
return result%m
'''a是底数b是底数m是取余的模数'''
年龄最小
输入n个学生的姓名和对应的生日(格式:年-月-日),输出年龄最小的学生的姓名(假设该学生是唯一的)。
输入格式:
输入整数n,然后输入n个人的姓名(字符个数不超过30)和对应的生日(格式:年-月-日,年月日都是整数)。
输出格式:
年龄最小的学生的姓名。
输入样例:
4 zhang 2000-12-11 wang 2000-12-2 li 2000-12-1 zhao 2000-12-3
输出样例:
zhang
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
栈限制
8192 KB
from datetime import datetime
def main():
n=int(input())
students=[]
for i in range(n):
ls,birth=input().split()
b_date=datetime.strptime(birth,'%Y-%m-%d')
students.append((ls,b_date))
min_age=float('inf') #正无穷大
name=""
for stu in students:
age=(datetime.now()-stu[1]).days#现在距离生日的天数
if age<min_age:
min_age=age
name=stu[0]
print(name)
if __name__=='__main__':
main()
辗转相除法
题目描述
两行输入两个整数,输出这两个整数的最小公倍数
输入
两行输入两个整数a,b
输出
两个整数的最大公约数
样例输入 复制
27 21
样例输出 复制
189
提示
两个数的最小公位数为它们的乘积除以最大公约数
a,b <= 10^8
a=int(input())
b=int(input())
d=1
cj=a*b #乘积
while d>0:
d=a%b
a=b
b=d#辗转相除
print(int(cj/a))#两个数的最小公倍数为他们的乘积除以最大公约数
【搜索基础】 输出全排列
很简单,输出1-N 全排列即可。
建议手写,不要用函数哦。
样例输入说