#define N 2 #define M N+1.......c语言麻烦解释一下过程和结果,谢谢

#defineN2#defineMN+1.......c语言麻烦解释一下过程和结果,谢谢#defineN2#defineMN+1#defineNUM2*M+1Intfib... #define N 2 #define M N+1.......c语言麻烦解释一下过程和结果,谢谢#define N 2
#define M N+1
#define NUM 2*M+1
Int fib(int n)
{return n<3?2:fib(n-1)+fib(n-2);}
main( )
{printf("%5d%5d\n",NUM,fib(5));
}
展开
 我来答
虚拟酱
2016-06-27 · TA获得超过300个赞
知道小有建树答主
回答量:312
采纳率:80%
帮助的人:213万
展开全部
NUM就是宏的展开,等效于2*N+1+1,就是6
fib(5)就是fib(4)+fib(3),fib(4)就是fib(3)+fib(2),fib(3)就是fib(1)+fib(2),fib(2)=2,fib(1)=2;结果就是10;
自恋狂TL
2016-06-27 · TA获得超过691个赞
知道小有建树答主
回答量:518
采纳率:75%
帮助的人:127万
展开全部
声明一个公共常量N=2,把N看成常数2就可以
追问
fib(5)怎么求出来的呢?
追答
int fib(int n)
{return n<3?2:fib(n-1)+fib(n-2);}

判断n<3是否成立,如果成立就返回2,不成立返回fib(n-1)+fib(n-2);
等价于:
int fib(int n)
{
if(n<3)
return 2;

return fib(n-1)+fib(n-2);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式