以下代码均为 自己 实现,嘻嘻!
参考文章:http://blog.csdn.net/talk_8/article/details/46289683
循环法
int CalFactorial(int x) { int sum=1; for(int i=x;i>0;i--) { sum=sum*i; } return sum; }
递归法
//递归 int CalculateFactorial(int x) { if(x>1) { return CalculateFactorial(x-1)*x; } else if(x==1) { return x; } }
完整代码
//#include <stdlib.h> #include "stdafx.h" using namespace std; //递归 int CalculateFactorial(int x) { if(x>1) { return CalculateFactorial(x-1)*x; } else if(x==1) { return x; } } //循环 int CalFactorial(int x) { int sum=1; for(int i=x;i>0;i--) { sum=sum*i; } return sum; } int _tmain(int argc, _TCHAR* argv[]) { //int a=CalculateFactorial(6); int a =CalFactorial(6); printf_s("%d ",a); system("pause"); return 0; }
有关于算法的介绍请点击我上面给的CSDN的链接。