c语言函数递归,为什么等于10啊?

不是应该是a[0]=3a[0]+2=5a[0]+1=6吗?... 不是应该是a[0]=3
a[0]+2=5
a[0]+1=6吗?
展开
 我来答
听不清啊
高粉答主

2021-12-06 · 说的都是干货,快来关注
知道顶级答主
回答量:7.8万
采纳率:89%
帮助的人:1.9亿
展开全部
说得完全正确。
因为这个c语言函数的递归计算过程如下,
=a0+f(a1,2)
=1+a1+f(a2,1)
=1+2+f(a3,0)
=1+2+3=6
a1表示a[1]
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ZYZHY678AB
2021-11-08 · TA获得超过506个赞
知道答主
回答量:8127
采纳率:11%
帮助的人:168万
展开全部
#include<stdio.h>
long fun( int n)
{ if( n>1 ) return (n*fun (n-1));
return 1;
}
main ( )
{ printf ("10!=% 1d\n",fun(10));}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
i地小激动很喜

2021-12-02 · 超过39用户采纳过TA的回答
知道答主
回答量:304
采纳率:0%
帮助的人:12.5万
展开全部
最佳答案:int n){ if( n>1 ) return (n*fun (n-1));return 1;} main ( ){ printf ("10!=% 1d\n",fun(10));} ...
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
microroom
科技发烧友

2021-11-08 · 智能家居/数码/手机/智能家电产品都懂点
知道大有可为答主
回答量:7118
采纳率:83%
帮助的人:1627万
展开全部
少算了一次。

fun(a,3)=1+fun(a+1,2)=1+9=10。
fun(a+1,2)=2+fun(a+2,1)=2+7=9。
fun(a+2,1)=3+fun(a+3,0)=3+4=7。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
稽英0C3

2021-11-08 · 超过31用户采纳过TA的回答
知道答主
回答量:4398
采纳率:2%
帮助的人:175万
展开全部
一、基本概念: c语言通过运行时堆栈来支持递归的实现的。递归函数就是直接或者间接调用自身的函数。这里有一个简单的程序,可用来说明递归。程序的目的是将一个整数从二进制形式转化为可打印的字符形式,例如给出一个值4267,我们需要一次产生‘4’,‘2’,‘6和‘7’。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 3条折叠回答
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式