请莫见笑!!!

devilhjf 2001-01-17 05:37:00
我是个初学 C语言的新手,有个笨问题,虽无实际价值,却真的很想知道:计算某数阶乘的方法,除了递归,迭代可否行的通??? 请高手指教!!!
...全文
221 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
redleaves 2001-03-05
  • 打赏
  • 举报
回复
我以为,如非必要,最好不要用递归.因为它的局限性大.数据量大时会出错(因为内存不够).
blowfish 2001-03-04
  • 打赏
  • 举报
回复
同意以上观点
zzroom 2001-01-19
  • 打赏
  • 举报
回复
用递归当然可以,只不过浪费内存。
hyqryq 2001-01-19
  • 打赏
  • 举报
回复
当然可以!

解决这类问题主要用两种方法,递归,递推.

递推主要用循环实现,由小问题出发,顺序与递归相反.
递归:
fun(int n)
{
if(n==1) return 1;

return n*fun(n-1); //由大到小
}

递推:
for(i=1;i<n;i++)
{
total*=i; //有效到大
}

其实一般情况下,递归都可以用循环来实现.






turing 2001-01-19
  • 打赏
  • 举报
回复
用递归浪费内存,.
hedayu 2001-01-17
  • 打赏
  • 举报
回复
求 n!

unsigned long perm(int n)
{
int i;
unsigned long total=1;

for(i=n;i>0;i--)
{
total*=i;
}

return total;
}
babysloth 2001-01-17
  • 打赏
  • 举报
回复
可行.
babysloth 2001-01-17
  • 打赏
  • 举报
回复
可行.循环.

70,036

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧