第1关:循环结构 - 数学中的累加运算

1
2
3
4
5
6
7
8
9
10
11
# 本程序计算1-N整数平方的累加和

N = int(input())
# 请在此添加实现代码 #
# ********** Begin *********#

sum_of_squares = sum([i**2 for i in range(1, N + 1)])
print(sum_of_squares)


# ********** End **********#

第2关:列表与循环 - 验证是否为三位数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 请验证输入的列表N_list中的整数是否为三位数,并返回三位数整数的百位数值

N_list = [int(i) for i in input().split(",")]

# 请在此添加实现代码 #
# ********** Begin *********#

result = []
for num in N_list:
if 100 <= num <= 999:
result.append(num // 100)
print(result)


# ********** End **********#

第3关:嵌套循环 - 使用莱布尼茨公式计算圆周率

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
import math

# 本程序要求返回算到N_list列表中每一项时的圆周率值,并用列表进行存储,最终输出列表结果

N_list = [int(i) for i in input().split(",")]

# 请在此添加实现代码 #
# ********** Begin *********#


pi_list = []
for n in N_list:
pi = 0
sign = 1
for i in range(1, n + 1):
if 2 * i - 1 > n:
break
pi += sign * (1 / (2 * i - 1))
sign *= -1
pi *= 4
pi_list.append(format(pi, ".8f"))

print(pi_list)


# ********** End **********#

第4关:函数模块与循环 - 使用 Machin 公式计算圆周率

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 请用函数实现Machin公式计算,包含隐含参数N


def arctg(x, N=5): # 迭代项数N的缺省值是5,即如果调用时不给值就用5
# 请在此添加实现代码 #
# ********** Begin *********#

result = 0
for i in range(N):
numerator = (-1) ** i
denominator = 2 * i + 1
term = numerator * (x**denominator) / denominator
result += term
return result

# ********** End **********#

第5关:函数与循环 - 自然对数的计算

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# 请实现ln函数
import math


def ln(x, N=50):
"""

:param x: 输入值
:param N: 迭代项数
:return: 对数值,误差的绝对值
"""
# 请在此添加实现代码 #
# ********** Begin *********#
result = 0.0
error = 0.0

for n in range(1, N + 1):
term = ((-1) ** (n + 1)) / n * ((x - 1) ** n)
result += term

error = abs(math.log(x) - result)
return result, error

# ********** End **********#