第1个回答 2017-04-27
#include <iostream>
using namespace std;
class Factor {
public:
// 非递归求阶乘
long long fact(int n) {
long long v = 1;
while(n >=1)
{
v = v*n;
n--;
}
return v;
}
// 递归求阶乘
long long factWithRecurs(int n) {
if(n <=1) return 1;
return n*factWithRecurs(n-1);
}
};
int main()
{
Factor f;
int n;
cin >> n;
long long sum = 0;
for(int i = 1; i <= n;i++)
sum += f.fact(i);
cout << sum <<endl;
sum = 0;
for(int i = 1; i <= n;i++)
sum += f.factWithRecurs(i);
cout << sum <<endl;
}本回答被网友采纳