在数学中 $ N! $ 表示 $N$ 的阶乘,即 $1$ 到 $N$ 的乘积,如 $ 3! = 1 \times 2 \times 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。for循环每次迭代后执行更新表达式(如i++)。循环体执行次数由初始值、条件和更新共同决定。
循环变量的初值、终值和步长共同决定循环次数。for(i=0;i<n;i++)执行n次。
【考点】阶乘定义|累加累乘|算法效率