在数学中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;虽然实现1的代码短小,但效率并不高
实现2的代码效率更高,且更易于理解
实现1因为应用了前项计算结果,计算量更小,因此效率高
. 两种实现,效率几乎一致
发表评论