下列关于两段求1到N阶乘之和的C++实现的说法,正确的是?

ty481338 单选题 共 个子题

在数学中N!表示N的阶乘,即1到N的乘积,如3!=123 ,且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;
A

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

B

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

C

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

D

两种实现,效率几乎一致

正在加载题目数据…
已答 /
子题
该题型需在试卷/作业中作答,单题练习暂不支持
答案解析
讨论
发布
登录后参与讨论 立即登录
发布讨论需先绑定并验证手机号 去绑定手机号
加载中…
我
我
回复 @
回复 @
发送
还没有人讨论,来发表第一条吧