一只青蛙一次可以跳上 1 级台阶,也可以跳上2 级。求该青蛙跳上一个n 级的台阶总共有多少种跳法。

复制代码
 1 /**
 2  * 问题描述:一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共需要多少种跳法。
 3  */
 4 #include <stdio.h>
 5 
 6 // 递归算法
 7 int faci(int n)
 8 {
 9     if (n == 0)
10         return 0;
11     else if (n == 1)
12         return 1;
13     else if (n == 2)
14         return 2;
15     else
16         return faci(n - 1) + faci(n - 2);
17 }
18 
19 // 迭代算法
20 int faci_iter(int n)
21 {
22     if (n == 0)
23         return 0;
24     int a = 1, b = 2, c;
25     for (int i = 1; i < n; i++)
26     {
27         c = a + b;
28         a = b;
29         b = c;
30     }
31     return a;
32 }
33 int main()
34 {
35     // 测试
36     printf("%d\n", faci(10));
37     printf("%d\n", faci_iter(10));
38     return 0;
39 }
复制代码

 

posted @   sqdtss  阅读(1727)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
点击右上角即可分享
微信分享提示