来总结下求阶乘的各种方法哈。
写在最前:①各个代码仅仅是提供了求阶乘的思路,以便在实际须要时再来编码,代码并不健壮!②各个程序都在1到10内測试正确。
代码一:
#includeusing namespace std;int fac(int);int main(){ int n; while(cin>>n) { cout< <<"!= "< <
分析:该程序在每次输入n时,都会调用fac()来暴力计算以得到结果。
代码二:
#includeusing namespace std;int a[11];void init();int main(){ init(); int n; while(cin>>n) { cout< <<"!= "< <
分析:该程序利用了数组记录已得到的结果,并在计算下一个结果时利用了已得到的结果。
代码三:
#includeusing namespace std;int fac(int);int main(){ int i; for(i=1;i<=10;i++) { cout< <<"!= "< <
分析:应该说该代码有用性最差,主要是来学习静态局部变量来了。
代码四:
#includeusing namespace std;int fac(int);int main(){ int n; while(cin>>n) { cout< <<"!= "< <
分析:一直觉得递归技术非常奇妙。尽管在时间和空间方面都不是非常理想,但的确同意我们利用了以“模糊”的方式编程。对每一个细节不必锱铢必较了。
写在最后:程序是个非常奇妙的东西。编程是个非常重要的能力。
欢迎拍砖!