在学习循环时,计算 sum=!+2!+3!+...+n!,是一个经典的题目。除了双重循环这个逻辑简单、效率低的算法外,老师往往还会介绍一个高效的算法,如下:
# include <bits/stdc++.h>
using namespace std;
typedef long long LL;
int main()
{
LL n,item=1,sum=0,i;
cin>>n;
for(i=1;i<=n;i++)
{
item=item*i;
sum=sum+item;
}
cout<<sum<<endl;
return 0;
}
然而,就像文言文一样,越是简练,越难理解。
下面,我们就向其中多加一些打印语句,大家通过看见中间结果,能更好的理解其计算过程。
# include <bits/stdc++.h>
using namespace std;
typedef long long LL;
int main()
{
LL n,item=1,sum=0,i;
cin>>n;
cout<<"下面进入循环"<<endl;
for(i=1;i<=n;i++)
{
cout<<"i="<<i<<" " ;
item=item*i;
cout<<i<<"!="<<item