C语言程序有问题——帮帮忙啊~~~

[复制链接]
查看11 | 回复3 | 2013-8-10 11:44:48 | 显示全部楼层 |阅读模式
递归思想不是这样的,递归是把求fact(n)转化成求fact(n-1)。正确的算法是:#includelong fact(int);int main(){int n;long result;printf("请输入一个整数n(不能太大): ");scanf("%d", &n);result = fact(n);printf("fact(%d) = %d", n, result);return 0;}long fact(int n){if (n == 1)return 1;else{return (2*n-1)*fact(n-1);}}...
回复

使用道具 举报

千问 | 2013-8-10 11:44:48 | 显示全部楼层
long fac(int m){
if(m<=1)
return 1;
else
return m*fac(m-2);}这样写才是递归,你那么写不是递归,是循环。...
回复

使用道具 举报

千问 | 2013-8-10 11:44:48 | 显示全部楼层
可以用,建议用长整形,与函数返回值保持一致...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行