小明看完电影《第39级台阶》,离开电影院的时候,他数了数视觉的台阶数,恰好是39级。

站在台阶前,他突然又想起一个问题:如果我每一步只能迈上1个或2个台阶,先迈左脚,然后左右交替,最后一步迈右脚,也就是说一共要迈偶数步。那么,上完39级台阶,有多少种不同的上法呢? 请利用计算机的优势,帮助小明寻找答案。

分析:

采用了两种方法:第一种traceback(t)中参数t 代表步数;第二种traceback(t)中t代表台阶数

/*

t代表台阶

*/

#include

#define n 39

int step=0; //步数

int count=0; //方案数

void traceback(int t){

if(t==n&&step%2==0){

count++;

return;

}

step++;

t++;

if(t<=n)

traceback(t);

t--;

step--;

step++;

t+=2;

if(t<=n)

traceback(t);

t-=2;

step--;

}

int main(){

traceback(0); //t代表的是台阶数

printf("%d",count);

return 0;

}

/*

t代表步数

*/

#include

#define n 39

int step=0; //步数

int taijie=0; //台阶数

int count=0; //方案数

void traceback(int t){

if(taijie==n&&t%2==0){

count++;

return;

}

taijie++;

t++;

if(taijie<=n)

traceback(t);

t--;

taijie--;

taijie+=2;

t++;

if(taijie<=n)

traceback(t);

t--;

taijie-=2;

}

int main(){

traceback(0); //t代表步数

printf("%d",count);

return 0;

}

运行截图

第39级台阶回溯算法c语言,回溯39级台阶相关推荐

  1. 全排列回溯算法C语言,回溯算法(以全排列为例)

    首先是题目描述: 给定一个没有重复数字的序列,返回其所有可能的全排列. 回溯算法是什么?回溯算法是系统搜索问题解集的一种方法,说白了就是一种搜索方法.回溯法按深度优先策略搜索问题的解空间树.首先从根节 ...

  2. LeetCode-题目详解(十一):回溯算法【递归回溯、迭代回溯】【DFS是一个劲往某一个方向搜索;回溯算法建立在DFS基础之上,在搜索过程中,达到结束/裁剪条件后,恢复状态,回溯上一层,再次搜索】

    这里写目录标题 一.概述 1.深度优先遍历(DFS) 和回溯算法区别 2. 何时使用回溯算法 3.回溯算法步骤 4.回溯问题的类型 二.LeetCode案例 39. 组合总和 40. 组合总和II 7 ...

  3. 第39级台阶回溯算法c语言,五大经典算法之回溯法 - osc_9ipdey7e的个人空间 - OSCHINA - 中文开源技术交流社区...

    一.基本概念 回溯法,又称为试探法,按选优条件向前不断搜索,以达到目标.但是当探索到某一步时,如果发现原先选择并不优或达不到目标,就会退回一步重新选择,这种达不到目的就退回再走的算法称为回溯法. 与穷 ...

  4. java回溯算法_java实现回溯算法

    最近有在leetcode上面做算法题,已经遇到了两道回溯算法的题目,感觉一点思路都没有,现决定将java如何实现回溯算法做一次总结. 什么叫做回溯算法 (摘抄于百度百科) 回溯算法实际上一个类似枚举的 ...

  5. 回溯与分支限界算法c语言,回溯与分支限界算法设计.docx

    算法设计与分析实验报告 专业 班级 姓名 学号 实验名称 实验四:回溯与分支限界算法设计 实验目的 掌握回溯法解决问题的一般步骤. 学会使用回溯法解决实际问题. 掌握分支限界法解决问题的基本思想. 学 ...

  6. java 着色问题 回溯算法,C语言使用回溯法解旅行售货员问题与图的m着色问题

    旅行售货员问题 1.问题描述: 旅行售货员问题又称TSP问题,问题如下:某售货员要到若干个城市推销商品,已知各城市之间的路程(或旅费),他要选定一条从驻地出发,经过每个城市一遍最后回到驻地的路线,使总 ...

  7. python回溯算法全排列_python 回溯法 子集树模板 系列 —— 11、全排列

    问题 实现 'a', 'b', 'c', 'd' 四个元素的全排列. 分析 这个问题可以直接套用排列树模板. 不过本文使用子集树模板.分析如下: 一个解x就是n个元素的一种排列,显然,解x的长度是固定 ...

  8. C语言经典回溯算法之解决数的组合问题(详解)

    文章目录 一.回溯算法 二.数的组合问题 一.回溯算法 1.回溯法 也叫试探法,实际上是一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就"回溯&q ...

  9. 刷了一天回溯算法 2022年6月16日

    刷了一天回溯算法 由于发现自己递归的回溯部分还是不太清楚,今天就特意抽出一整天的时间来练习回溯算法. 练习方式:把<代码随想录>上面第九章回溯算法这一章的所有题目,总共有十四道题目都做了一 ...

  10. 本题要求实现一个求整数的逆序数的简单函数。_回溯算法:求组合总和(二)...

    给「代码随想录」一个星标吧! ❝ 我将公众号文章和学习相关的资料整理到了Github :https://github.com/youngyangyang04/leetcode-master,方便大家在 ...

最新文章

  1. Python IDE专用编辑器PyCharm下载及配置安装过程(Ubuntu环境)
  2. linux 批量启动服务器,批量部署Linux操作系统systemimager 使用
  3. 《学得少考得好》读书笔记
  4. shellcode学习总结
  5. Linux下监控磁盘io,如何在Linux下监控磁盘IO?
  6. springboot websocket发送和接收消息代码资源下载
  7. 相同布局在不同手机上显示不同_不懂响应式,不同尺寸屏幕下的页面很难达到最佳效果...
  8. 分披萨问题_比萨疯狂问题
  9. 【Tensorflow】tf.nn.depthwise_conv2d如何实现深度卷积?+深度可分离卷积详解
  10. Android--使用Camera拍照
  11. 在SSP中查询某个用户Profile信息的SQL语句
  12. 互联网的高薪是否可持续,20万年薪的公务员到底香不香
  13. 视频怎么插入慢动作?
  14. windows用户模式与内核模式
  15. 数据库日志系统之删库跑路后的亡羊补牢
  16. java 明华读卡器_Java调用明华RF读写器DLL文件过程解析
  17. 概率论与数理统计---陈希孺---书籍链接下载
  18. C#无损高质量压缩图片实现代码
  19. 国密gmtls协议-双证书体系的服务端和客户端通信代码
  20. 大学计算机计算题乘法,分数乘法计算题100道

热门文章

  1. 设置来电铃声、卡2来电铃声、短信铃声、提示铃声、闹铃铃声
  2. Sql Server数据库中查询操作时“对象名无效”解决方法
  3. Java高级之HashMap中的put()方法和putIfAbsent()方法
  4. Jenkins HTML Publisher 插件
  5. python编程竞赛规则_第十一届蓝桥杯Python规则及样题
  6. BAT齐聚阿里安全-ASRC生态大会:呼吁联合共建网络安全白色产业链
  7. 2019年4月27号,下雨杂谈
  8. 局域网监控软件——邮件监控
  9. Matlab实现数字转换为字符串
  10. Rqnoj341星门跳跃