当前位置: 首页 > wzjs >正文

登不上建设企业网站wordpress附件ftp导入

登不上建设企业网站,wordpress附件ftp导入,艺术品拍卖网站源码php,网站改版的方式大致为题目描述 一个楼梯共有 n级台阶,每次可以走一级或者两级,问从第0级台阶走到第n级台阶一共有多少种方案。 输入格式 共一行,包含一个整数 n 输出格式 共一行,包含一个整数,表示方案数。 数据范围 1≤n≤45 样例 输…

题目描述


一个楼梯共有 n级台阶,每次可以走一级或者两级,问从第0级台阶走到第n级台阶一共有多少种方案。

输入格式

共一行,包含一个整数 n

输出格式

共一行,包含一个整数,表示方案数。

数据范围

1≤n≤45



样例

输入样例:

5
输出样例:

8

代码一(暴力的BFS):

#include <stdio.h>int climbStairs(int x) {if (x == 1) {return 1;}else if (x == 2) {return 2;}else {return climbStairs(x - 1) + climbStairs(x - 2);}}int main() {int n;printf("请输入楼梯的阶数:");scanf("%d", &n);int ways = climbStairs(n);printf("%d 阶楼梯一共有 %d 种跳法。\n", n, ways);return 0;
}

代码过程分析:

        climbStairs(5)/        \/          \climbStairs(4)  climbStairs(3)/      \          /     \/        \        /       \
climb(3)  climb(2) climb(2) climb(1)/  \       |        |        |/    \      |        |        |
c(2) c(1)   2        2        1|     |2     1

climbStairs(5)
= climbStairs(4) + climbStairs(3)
= [climbStairs(3) + climbStairs(2)] + [climbStairs(2) + climbStairs(1)]
= [ [climbStairs(2) + climbStairs(1)] + 2 ] + [2 + 1]
= [ [2 + 1] + 2 ] + 3
= [3 + 2] + 3
= 5 + 3
= 8
步骤分解
  1. climbStairs(5)

    • 调用 climbStairs(4) 和 climbStairs(3),等待它们的返回值。

  2. 计算 climbStairs(4)

    • 调用 climbStairs(3) 和 climbStairs(2),等待返回值。

    • 计算 climbStairs(3)

      • 调用 climbStairs(2) 和 climbStairs(1)

        • climbStairs(2) 返回 2(基准条件)。

        • climbStairs(1) 返回 1(基准条件)。

      • 合并结果:2 + 1 = 3

    • 计算 climbStairs(2)

      • 直接返回 2(基准条件)。

    • 合并结果:3 + 2 = 5

    • climbStairs(4) 返回 5

  3. 计算 climbStairs(3)

    • 调用 climbStairs(2) 和 climbStairs(1)

      • climbStairs(2) 返回 2

      • climbStairs(1) 返回 1

    • 合并结果:2 + 1 = 3

    • climbStairs(3) 返回 3

  4. 合并最终结果

    • climbStairs(5) = climbStairs(4) + climbStairs(3) = 5 + 3 = 8

    • 对结果取模 1e9 + 7(因 8 < 1e9 + 7,结果仍为 8)。

代码二(记忆化搜索):

#include <stdio.h>
const int N=45;
int mem[N];
int climbStairs(int x) {if(mem[x]) return mem[x];int sum=0;if (x == 1) {sum=1;}else if (x == 2) {sum=2;}else {sum=climbStairs(x - 1) + climbStairs(x - 2);}mem[x]=sum;return sum;}int main() {int n;printf("请输入楼梯的阶数:");scanf("%d", &n);int ways = climbStairs(n);printf("%d 阶楼梯一共有 %d 种跳法。\n", n, ways);return 0;
}

代码过程分析:

        climbStairs(5) → 8/           \/             \climbStairs(4) →5  [climbStairs(3) →3 (cached)]/        \               /     \/          \             /       \
climb(3)→3  climb(2)→2  climb(2)→2  climb(1)→1 (cached)/    \/      \
c(2)→2  c(1)→1 (cached)
记忆化数组 mem 的最终状态
索引1	2	3	4	5
值	1	2	3	5	8
  • 步骤分解
  • 初始化全局数组 mem
    所有元素初始值为 0

  • 调用 climbStairs(5)

    • 检查 mem[5] 是否为 0(初始为 0),进入计算分支。

    • 递归调用 climbStairs(4) + climbStairs(3)

  • 计算 climbStairs(4)

    • mem[4] = 0,进入计算分支。

    • 递归调用 climbStairs(3) + climbStairs(2)

      • 计算 climbStairs(3)

        • mem[3] = 0,进入计算分支。

        • 递归调用 climbStairs(2) + climbStairs(1)

          • 计算 climbStairs(2)

            • mem[2] = 0,赋值 sum = 2,存入 mem[2] = 2,返回 2

          • 计算 climbStairs(1)

            • mem[1] = 0,赋值 sum = 1,存入 mem[1] = 1,返回 1

        • sum = 2 + 1 = 3,存入 mem[3] = 3,返回 3

      • 计算 climbStairs(2)

        • mem[2] = 2(已缓存),直接返回 2

    • sum = 3 + 2 = 5,存入 mem[4] = 5,返回 5

  • 计算 climbStairs(3)(在 climbStairs(5) 中)

    • mem[3] = 3(已缓存),直接返回 3

  • 合并结果

    • climbStairs(5) = 5 (climbStairs(4)) + 3 (climbStairs(3)) = 8

    • 存入 mem[5] = 8,最终返回 8

  • 记忆化存储每个 climbStairs(x) 的结果存入 mem[x],避免重复计算。

  • 递归逻辑

    • climbStairs(x) = climbStairs(x-1) + climbStairs(x-2)(斐波那契数列)。

    • 基准条件:x=1 返回 1x=2 返回 2

代码三(递归(dp)):

#include <stdio.h>
const int N=45;
int f[N];
int n;
int main() {scanf("%d",&n);f[1]=1,f[2]=2;if(n==1||n==2){printf("%d",f[n]);return 0;}for(int i=3;i<=n;i++){f[i]=f[i-1]+f[i-2];}printf("%d",f[n]);return 0;
}


文章转载自:

http://xjRRW4Lu.kmznb.cn
http://VpzfQpYX.kmznb.cn
http://AfCu8niY.kmznb.cn
http://c5Pw6tfH.kmznb.cn
http://oUmaDGyr.kmznb.cn
http://2G6xCDgR.kmznb.cn
http://bh4DzvtV.kmznb.cn
http://5MZ5zOdl.kmznb.cn
http://FuVE559G.kmznb.cn
http://YQIZ1aoN.kmznb.cn
http://dzZuXbYA.kmznb.cn
http://iKvQmo8o.kmznb.cn
http://wTAilC26.kmznb.cn
http://Fd4Jziuz.kmznb.cn
http://fvcP8pKg.kmznb.cn
http://d6hLln8N.kmznb.cn
http://wdEH7ZFZ.kmznb.cn
http://89vdPJH2.kmznb.cn
http://STr9UosE.kmznb.cn
http://zN3Y1C0n.kmznb.cn
http://ONrziXIT.kmznb.cn
http://LX7vavwQ.kmznb.cn
http://q49iPNuc.kmznb.cn
http://EfgVWpjd.kmznb.cn
http://VFaV4jj8.kmznb.cn
http://rJEyd9LB.kmznb.cn
http://k0zTRBie.kmznb.cn
http://jkwl4KxV.kmznb.cn
http://xlPwxiep.kmznb.cn
http://qUOReGKa.kmznb.cn
http://www.dtcms.com/wzjs/686214.html

相关文章:

  • 滑动网站如何制作数据库网站
  • .net如何做直播网站宜春个人网站建设
  • 网站项目验收南宁工程建设网站有哪些
  • 外包网站设计公司新网站前期如何做seo
  • 医疗网站建设公司o2o电商平台
  • 展示系统 网站模板免费下载哪里可以接网站开发项目做
  • 百度竞价网站谁做网站排行
  • 网站开发时间一般是装修设计效果图大全免费
  • 怎么做公司官方网站湛江建站网络公司
  • 枣庄公司网站建设公司网站开发的国内外研究现状
  • 电商网站模板下载网站建设的简介
  • 加强制度建设 信息公开 网站 专栏网址短链接生成
  • 六安找人做网站dw网页设计作业成品加解析
  • 男女直接做免费的网站软件开发文档的重要性
  • 会网站开发想找兼职网站可以做哪些广告语
  • 免费手机网站空间ps个人网页设计素材
  • 做儿童交互网站做网站哪里接单
  • 响应式网站的意义地方文明网站建设
  • 招聘网站比对表怎么做广东省水利工程建设信息网站
  • 网站建设分为那几个模块深圳网站设计必选成都柚米科技09做
  • 网站想换空间国家建设工程网查询
  • wordpress外贸网站模板短视频推广的好处
  • 做网站别名解析的目的是什么wordpress字体怎么改
  • 无锡手机网站建设服务江苏省建设厅网站
  • 网页游戏网站网址动力无限做网站
  • 企业开源网站程序有免费网站服务器吗
  • 做化验的在哪个网站里投简历新闻报道最新消息今天
  • 网站一键生成写作教学网站
  • ui设计哪里有培训班seo快速排名软件价格
  • 电子商务网站制作步骤医院网站建设哪家好