伪善丿 2022-06-16 08:24 采纳率: 80%
浏览 34
已结题

一个简单c语言程序解过程不太懂

#include <stdio.h>
int f(int n)
{
int s=0,i;
if(n==0||n==1)
return 1;
for(i=n-1;i>=0;i--)
s+=f(i)f(n-1-i);
return s;
}
int main()
{
int i;
for(i=1;i<=4;i++)
printf("%d=%d\n",i,f(i));
return 0;
}
记过 1=1 2=2 3=5 4=14
过程不太了解憋了10多分钟,只知道1满足条件返回1
当n=2 进入循环 f(1)f(0)=1,f(0)(1)=1 s=2
当n=3 进入循环 f(2)
(1) =2, f(1)*(0)=1,f(0)*f(1) s=4 结果是5
,就有点懵了 n=4就更不知道了
有没有心细的人解答一下,蟹蟹

  • 写回答

2条回答 默认 最新

  • 於黾 2022-06-16 08:43
    关注

    f是个递归函数
    它怎么递归的你其实不用一步一步的去看
    你只要知道它的功能是求通项是f(i)f(n-1-i)的级数和
    还知道f(0)=1,f(1)=1
    那么f(2)=f(0)*f(1)+f(1)*f(0)=2
    f(3)=f(0)*f(2)+f(1)*f(1)+f(2)*f(0)=2+1+2=5
    f(4)=f(0)*f(3)+f(1)*f(2)+f(2)*f(1)+f(3)*f(0)=5+2+2+5=14

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 6月24日
  • 已采纳回答 6月16日
  • 创建了问题 6月16日

悬赏问题

  • ¥15 如何让子窗口鼠标滚动独立,不要传递消息给主窗口
  • ¥15 如何能达到用ping0.cc检测成这样?如图
  • ¥15 关于#DMA固件#的问题,请各位专家解答!
  • ¥15 matlab生成的x1图不趋于稳定,之后的图像是稳定的水平线
  • ¥15 请问华为OD岗位的内部职业发展通道都有哪些,以及各个级别晋升的要求
  • ¥20 微信小程序 canvas 问题
  • ¥15 系统 24h2 专业工作站版,浏览文件夹的图库,视频,图片之类的怎样删除?
  • ¥15 怎么把512还原为520格式
  • ¥15 MATLAB的动态模态分解出现错误,以CFX非定常模拟结果为快照
  • ¥15 求高通平台Softsim调试经验