第39级台阶回溯算法c语言,回溯39级台阶
小明看完电影《第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级台阶相关推荐
- 全排列回溯算法C语言,回溯算法(以全排列为例)
首先是题目描述: 给定一个没有重复数字的序列,返回其所有可能的全排列. 回溯算法是什么?回溯算法是系统搜索问题解集的一种方法,说白了就是一种搜索方法.回溯法按深度优先策略搜索问题的解空间树.首先从根节 ...
- LeetCode-题目详解(十一):回溯算法【递归回溯、迭代回溯】【DFS是一个劲往某一个方向搜索;回溯算法建立在DFS基础之上,在搜索过程中,达到结束/裁剪条件后,恢复状态,回溯上一层,再次搜索】
这里写目录标题 一.概述 1.深度优先遍历(DFS) 和回溯算法区别 2. 何时使用回溯算法 3.回溯算法步骤 4.回溯问题的类型 二.LeetCode案例 39. 组合总和 40. 组合总和II 7 ...
- 第39级台阶回溯算法c语言,五大经典算法之回溯法 - osc_9ipdey7e的个人空间 - OSCHINA - 中文开源技术交流社区...
一.基本概念 回溯法,又称为试探法,按选优条件向前不断搜索,以达到目标.但是当探索到某一步时,如果发现原先选择并不优或达不到目标,就会退回一步重新选择,这种达不到目的就退回再走的算法称为回溯法. 与穷 ...
- java回溯算法_java实现回溯算法
最近有在leetcode上面做算法题,已经遇到了两道回溯算法的题目,感觉一点思路都没有,现决定将java如何实现回溯算法做一次总结. 什么叫做回溯算法 (摘抄于百度百科) 回溯算法实际上一个类似枚举的 ...
- 回溯与分支限界算法c语言,回溯与分支限界算法设计.docx
算法设计与分析实验报告 专业 班级 姓名 学号 实验名称 实验四:回溯与分支限界算法设计 实验目的 掌握回溯法解决问题的一般步骤. 学会使用回溯法解决实际问题. 掌握分支限界法解决问题的基本思想. 学 ...
- java 着色问题 回溯算法,C语言使用回溯法解旅行售货员问题与图的m着色问题
旅行售货员问题 1.问题描述: 旅行售货员问题又称TSP问题,问题如下:某售货员要到若干个城市推销商品,已知各城市之间的路程(或旅费),他要选定一条从驻地出发,经过每个城市一遍最后回到驻地的路线,使总 ...
- python回溯算法全排列_python 回溯法 子集树模板 系列 —— 11、全排列
问题 实现 'a', 'b', 'c', 'd' 四个元素的全排列. 分析 这个问题可以直接套用排列树模板. 不过本文使用子集树模板.分析如下: 一个解x就是n个元素的一种排列,显然,解x的长度是固定 ...
- C语言经典回溯算法之解决数的组合问题(详解)
文章目录 一.回溯算法 二.数的组合问题 一.回溯算法 1.回溯法 也叫试探法,实际上是一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就"回溯&q ...
- 刷了一天回溯算法 2022年6月16日
刷了一天回溯算法 由于发现自己递归的回溯部分还是不太清楚,今天就特意抽出一整天的时间来练习回溯算法. 练习方式:把<代码随想录>上面第九章回溯算法这一章的所有题目,总共有十四道题目都做了一 ...
- 本题要求实现一个求整数的逆序数的简单函数。_回溯算法:求组合总和(二)...
给「代码随想录」一个星标吧! ❝ 我将公众号文章和学习相关的资料整理到了Github :https://github.com/youngyangyang04/leetcode-master,方便大家在 ...
最新文章
- Python IDE专用编辑器PyCharm下载及配置安装过程(Ubuntu环境)
- linux 批量启动服务器,批量部署Linux操作系统systemimager 使用
- 《学得少考得好》读书笔记
- shellcode学习总结
- Linux下监控磁盘io,如何在Linux下监控磁盘IO?
- springboot websocket发送和接收消息代码资源下载
- 相同布局在不同手机上显示不同_不懂响应式,不同尺寸屏幕下的页面很难达到最佳效果...
- 分披萨问题_比萨疯狂问题
- 【Tensorflow】tf.nn.depthwise_conv2d如何实现深度卷积?+深度可分离卷积详解
- Android--使用Camera拍照
- 在SSP中查询某个用户Profile信息的SQL语句
- 互联网的高薪是否可持续,20万年薪的公务员到底香不香
- 视频怎么插入慢动作?
- windows用户模式与内核模式
- 数据库日志系统之删库跑路后的亡羊补牢
- java 明华读卡器_Java调用明华RF读写器DLL文件过程解析
- 概率论与数理统计---陈希孺---书籍链接下载
- C#无损高质量压缩图片实现代码
- 国密gmtls协议-双证书体系的服务端和客户端通信代码
- 大学计算机计算题乘法,分数乘法计算题100道
热门文章
- 设置来电铃声、卡2来电铃声、短信铃声、提示铃声、闹铃铃声
- Sql Server数据库中查询操作时“对象名无效”解决方法
- Java高级之HashMap中的put()方法和putIfAbsent()方法
- Jenkins HTML Publisher 插件
- python编程竞赛规则_第十一届蓝桥杯Python规则及样题
- BAT齐聚阿里安全-ASRC生态大会:呼吁联合共建网络安全白色产业链
- 2019年4月27号,下雨杂谈
- 局域网监控软件——邮件监控
- Matlab实现数字转换为字符串
- Rqnoj341星门跳跃