#includeint fib(int n)
{int a = 1, b = 1, i = 0;
int c = 0;
if (n<= 2)
return 1;
else
{for (i = 0; i< n - 2; i++)
{c = a + b;
a = b;
b = c;
}
return b;
}
}
int main()
{int n;
scanf("%d", &n);
printf("%d\n", fib(n));
return 0;
}
#includeint fib(int n)
{if (n >2)
return fib(n - 1) + fib(n - 2);
else
return 1;
}
int main()
{int n;
scanf("%d", &n);
printf("%d\n", fib(n));
return 0;
}
当n=1时,青蛙只能有一种跳法;
当n=2时,青蛙可以先跳一阶,在跳一阶;也可以直接跳两阶。共两种跳法;
当n=3时,青蛙可以先跳一阶再跳两阶,也可以先跳两阶在跳一阶,还可以一阶一阶的跳,共三种跳法;
- 这样理解或许有些麻烦,我们还可以采用更快的理解方式。
当n=3时,我们可以理解为如果青蛙先跳一阶,这后面我们可以理解为n=2时的跳法,若青蛙先跳两阶,后面可以理解为n=1的跳法。
以此类推,当n=m时,跳法总数 = (当n=m-1的跳法总数) + (当n=m-2的跳法总数)。
这样递推就类似上面讲的斐波那契数列了,但不完全一样。
#includeint like_fib(int n)
{if (n == 1)
{return 1;
}
else if (n == 2)
{return 2;
}
else if (n >2)
{return f(n - 1) + f(n - 2);//递归
}
}
int main()
{printf("青蛙要跳几个台阶=>");
int a = 0;
scanf("%d", &a);
printf("青蛙会有几种跳法=>");
printf("%d", like_fib(a));
}
🎉🎉好喽,今日分享到此结束咯!🎉🎉———————————萌新初上道,大佬多指教🧸
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
售后响应及时
7×24小时客服热线数据备份
更安全、更高效、更稳定价格公道精准
项目经理精准报价不弄虚作假合作无风险
重合同讲信誉,无效全额退款