GESP C++ 真题 · 逐题精解
首页C++二级真题 › 2025年3月 › 第11题

GESP 2025年3月 C++二级 单选题 第11题

C++二级单选题2025年3月第11题

所属知识点:枚举与数论 难度要求:掌握 考频:—

在数学中N!表示N的阶乘,即1到N的乘积,如 3!=1*2*3 ,且 0! = 1 。下面的两段C++代码用于求1到N 的阶乘之和,如N为3,则结果是9( 1!+2!+3! 的值)。选项中的说法正确的是( )。
// 实现1
int i,N;
cin >> N;
int tnt = 0, last = 1;
for (i = 1; i < N + 1; i++){
last *= i;
tnt += last;
}
cout << tnt << endl;
// 实现2
int i,N;
cin >> N;
int tnt = 0, tmp;
for (i = 1; i < N + 1; i++){
tmp = 1;
for (int j = 1; j < i + 1; j++)
tmp *= j;
tnt += tmp;
}
cout << tnt << endl;

正确答案:C

题目解析

实现1 用 last=i 复用上一个阶乘(O(N)),实现2 每次都从头重算………

完整解析为会员内容二级及以上的逐题精讲需开通 VIP。一级解析全部免费。前往 GESPPASS 解锁

想系统刷完 GESP C++ 1~8 级真题,并查看每道题的逐题精讲?

进入 GESPPASS 开始练习