为了账号安全,请及时绑定邮箱和手机立即绑定

递归程序(求阶乘)随输入数值增大(>31时),输出结果变成了垃圾数据,是怎么回事?

递归程序(求阶乘)随输入数值增大(>31时),输出结果变成了垃圾数据,是怎么回事?

C
慕容3067478 2018-12-22 02:24:36
大佬们好!我的递归程序实现代码如下:include<stdio.h>int F(int n){if(n==0)    return 1;else     return F(n-1)*n;}int main(){int n;scanf("%d",&n);printf("%d\n",F(n));return 0;}运行结果当超过31时,输出的结果会变成0,当我用32做实验时,直接输出了一个负值,当输入数据小于等于31时,输出正常,没有问题对一些小的数据,如3、 6、 9用计算器进行过验证,输出结果没有问题求大佬们解答!
查看完整描述

1 回答

?
紫衣仙女

TA贡献1839条经验 获得超15个赞

数据溢出,建议用long类型的试试

查看完整回答
反对 回复 2018-12-22
  • 1 回答
  • 0 关注
  • 449 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信