万卷网 > 题目详情
题型:单选题

在数学中N!表示N的阶乘,即1到N的乘积,如 3!=1*2*3 ,且 0! = 1 。下面的两段Python代码用于求1-N的阶乘之和,如N为3,则是 1!+2!+3! 。选项中的说法,正确的是( )。

#实现1
N = int(input())
tnt, last = 0, 1
for i in range(1,N + 1):
	last *= i
	tnt += last
print(tnt)
#实现2
N = int(input())
tnt = 0
for i in range(1, N + 1):
	tmp = 1
	for j in range(1,i + 1):
		tmp *= j
	tnt += tmp
print(tnt)
A.

虽然实现1的代码短小,但效率并不高

B.

实现2的代码效率更高,且更易于理解

C.

实现1因为应用了前项计算结果,计算量更小,因此效率高

D.

两种实现,效率几乎一致

更新时间:2025-06-19 15:11:29 |
【知识点】 CCF—GESP Python二级

相似题推荐

单选题

下面的Python 代码执行后其输出是( )。

cnt = 0
for i in range(1, 5):
    for j in range(i):
        print(j, end = "#")
    break
else:
    print(i*j)
A.

0#0#1#0#1#2#0#1#2#3#12

B.

0#0#1#0#1#2#0#1#2#3#

C.

0#

D.

1#

2026-07-31
判断题

下列Python 代码执行后将输出1#4#9#16#16 。()

for i in range(1, 5):
    for j in range(1, i + 1):
        if i * j % 10 == 0:
            break
    else:
        print(i * j, end = "#")
else:
    print(i * j)
A.正确 B.错误
2026-07-31
判断题

下面的Python 代码执行将不会有输出,因为内层循环j 总是0 开始,i * j % 10 == 0 将会被满足,执行break,故而不会执行代码中的else 子句部分。()

for i in range(1, 10):
    for j in range(i):
        if i * j % 10 == 0:
            break
else:
    print(i*j)


A.正确 B.错误
2026-07-31
判断题

执行下面的Python 代码,其语句print(N) 将被执行0 次或极多次(即死循环)。()

N = input() 
while N :
    print(N)
A.正确 B.错误
2026-07-31
单选题

下面选择项中,与Python 表达式not (x > 5 and y <= 10)等价的是( )。

A.

x <= 5 and y > 10

B.

x > 5 or y <= 10

C.

x <= 5 or y > 10

D.

not x > 5 and not y <= 10

2026-07-31
公众号
客服 反馈
顶部