输入一个数,求这个数的阶乘?用C#

如题 用C#写出代码 谢谢了
我还只学到程序流程控制这,也就是一些循环语句。不要太深啦,拜托...比如楼下的什么递归算法,我们还没学...

static int Fab(int Num)
{
int ReFab = 1;
if (Num == 0 || Num == 1)
{
return 1;
}
else
{
for (int i = Num; i > 0; i--)
{
ReFab *= i;
}
}
return ReFab;
}
楼上给的是递归算法,这样太慢了,还是非递归快点。
楼下几位,我想说你们难道没有学过编译么?还理论上快?...你难道不知道函数调用速度有多慢么,需要不停的在堆栈里面查找函数地址...我承认递归算法体现能力,但是也仅限于解决复杂问题的时候,俗话说把复杂问题简单化是天才,把简单问题复杂化是庸才,递归反而体现一个人逻辑思维不够缜密才会选择处理方式,经典是经典,但是那是教学,公司里面见到你这样随便就用递归的恐怕就不会夸你了...
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-03-21
楼主,我认为一楼的递归算法比二楼的for循环更好,两种方法都能实现,但递归算法更能体现能力,而且从数据结构上来说,一楼算法时间 理论上更短。
虽然我不得分,还是说一下。
第2个回答  2010-03-22
一楼的好,是最佳答案。递归也不难理解啊。多经典!!
第3个回答  2010-03-21
输入的n>0时
public int fab(int n)
{
if(n==0||n==1)
{
return 1;
}
else
{
return n*fab(n-1);
}
}本回答被提问者采纳
相似回答