编程求1!+2!+3!+4!+…+12!,并试着简化程序。
#include<iostream> using namespace std; template <class T> T jiecheng(T a) { if(a!=0) { return a*jiecheng(a-1); } else if(a==0) return 1; else return -1; } int main() { int num; cout<<"请输入阶乘个数:";//求其他任意数的阶乘和 cin >> num ; double sum=0; if (num>0) { cout<<"各项阶乘为:"<<endl; for(int i=num;i>0;i--) { cout<<num-i+1<<"的阶乘为:"; cout<<jiecheng(num-i+1)<<endl; sum+=jiecheng(i); } cout<<"和为:"<<endl; cout<<sum; } else cout<<"请输入大于0的数!"<<endl; return 0; }
//======================================= //EX0202_1.cpp //1!+2!+3!+...+12!的和 //======================================= #include<iostream> using namespeace std; //--------------------------------------- int main() { int sum=0; for(int i=1; i<=12; ++i ) { int t =1; for(int j=1; j<=i; ++j) t = t * j; sum = sum + t } cout<<sum<<"\n"; }//=======================================//======================================= //EX0202_2.cpp //1!+2!+3!+...+12!的和 //======================================= #include<iostream> using namespeace std; //--------------------------------------- int main() { int sum=0; for(int i=1;t=1; i<=12; t*=++i) sum += t; cout<<sum<<"\n"; }//=======================================