Math库
import math
e = math.e # 欧拉数
pi = math.pi # 圆周率
tau = math.tau # 二倍圆周率
print(e)
print(pi)
print(tau)
# 正无穷大浮点数
print(math.inf)
输出
2.718281828459045
3.141592653589793
6.283185307179586
inf
import math
# 向上取整
print("math.ceil(2.4) = ",math.ceil(2.4))
print("math.ceil(2.5) = ",math.ceil(2.5))
print("math.ceil(2.6) = ",math.ceil(2.6))
# 向下取整
print("math.floor(2.4) = ",math.floor(2.4))
print("math.floor(2.5) = ",math.floor(2.5))
print("math.floor(2.6) = ",math.floor(2.6))
# 绝对值
print(math.fabs(-2))
print(math.fabs(-2.45))
print(math.fabs(0))
# 最大公约数
arr = [20,16,160]
print(math.gcd(*arr))
print(math.gcd(100,55,120))
# 返回不重复且无顺序地从n项中选择k项的方式总数
print(math.comb(4,2))
print(math.comb(4,1))
# 阶乘
print(math.factorial(3))
# 平方根
print(math.sqrt(9))
输出
math.ceil(2.4) = 3
math.ceil(2.5) = 3
math.ceil(2.6) = 3
math.floor(2.4) = 2
math.floor(2.5) = 2
math.floor(2.6) = 2
2.0
2.45
0.0
4
5
6
4
6
3.0
整一道阶乘的题
团体程序设计天梯赛
一、L1-013 计算阶乘和
对于给定的正整数N,需要你计算 S=1!+2!+3!+…+N!。
输入格式:
输入在一行中给出一个不超过10的正整数N。
输出格式:
在一行中输出S的值。
输入样例:
3
输出样例:
9
1.不用math库
n = int(input())
def arr(b):
x1 = 0
x2 = 1
for i in range(1,b+1):
x2 *= i
x1 += x2
return x1
x = arr(n)
print(x)
2.用math库
import math
n = int(input())
k = 0
for i in range(1,n+1):
k += math.factorial(i)
print(k)
再随便做一道
团体程序设计天梯赛
二、L1-056 猜数字
一群人坐在一起,每人猜一个 100 以内的数,谁的数字最接近大家平均数的一半就赢。本题就要求你找出其中的赢家。
输入格式:
输入在第一行给出一个正整数N(≤10 **4)。随后 N 行,每行给出一个玩家的名字(由不超过8个英文字母组成的字符串)和其猜的正整数(≤ 100)。
输出格式:
在一行中顺序输出:大家平均数的一半(只输出整数部分)、赢家的名字,其间以空格分隔。题目保证赢家是唯一的。
输入样例:
7
Bob 35
Amy 28
James 98
Alice 11
Jack 45
Smith 33
Chris 62
输出样例:
22 Amy
输出样例:
22 Amy
代码:
import math
n = int(input())
arr = [list(map(str,input().split())) for _ in range(n)]
k = 0
for i in range(n):
arr[i][1] = int(arr[i][1])
k += arr[i][1]
arrr = int(k / (2*n))
orr = arr[0][0]
k = math.fabs(arr[0][1] - arrr)
for i in range(n):
if math.fabs(arr[i][1] - arrr) < k:
k = math.fabs(arr[i][1] - arrr)
orr = arr[i][0]
print(arrr,orr)