递归算法

实现n的阶乘

源代码:

#include<stdio.h>
#include<conio.h>
int fact(int n);
int main(){
int i;
printf("请输入要求的数的阶乘: ");
scanf("d%",&i);
printf("%d的阶乘结果为:%d\n",i,fact(i));
getch();
return 0;


}
int fact(int n){


if(n==1)
return 1;
else 
return n*fact(n-1);
}

通过此算法,vs2010报错,堆栈溢出,对于这类问题不是简单的直接改变堆栈内存尺寸就可以,需要优化递归的算法。比如:可以设置一个动态的空间,可以free空间。参照点击打开链接的使用方法进行改进。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值