济宁网站建设电话假网站的域名
济宁网站建设电话,假网站的域名,网站建设的费用,佛山网站建设专家评价821. 跳台阶
⭐️难度#xff1a;简单 ⭐️类型#xff1a;递归
#x1f4d6;题目#xff1a;题目链接
#x1f31f;思路#xff1a; 问题太复杂#xff0c;没办法全局考虑#xff0c;考虑分治法#xff0c; 逐渐降低复杂度#xff0c;把大问题分解成若干相似小问…821. 跳台阶⭐️难度简单⭐️类型递归题目题目链接思路问题太复杂没办法全局考虑考虑分治法逐渐降低复杂度把大问题分解成若干相似小问题小问题能够直接解决。题中①最后一步一定走一级或二级问题倒退成 要解决的问题是走n-1级和n-2级有多少种方案但问题到这里还是不简单继续倒推②假设剩下台阶数是n倒数第二步一定走一级或二级问题倒退成 要解决的问题是走n-1级和n-2级有多少种方案… …③不难发现每一次分解问题的解决思路是一致的可以用同样的式子表达出来最后问题会退化成走012个台阶有几种方案④显而易见口算就能知道走01个台阶只有 1 种方案走2个台阶有 2种方案走一级再走一级 和 一次走两级。题解找到方法后代码其实并不复杂#define_CRT_SECURE_NO_WARNINGS#includestdio.h#includestring.h#includevector// vector不需要.h#includelist#includeset// // 可以用 set 和 multiset#includeunordered_set// 可以用 unordered_set 和 unordered_multiset#includemap// 可以用 map 和 multimap#includeunordered_map// 可以用 unordered_map 和 unordered_multimap#includealgorithm#includestring#includeiostream#includequeue#includestackusingnamespacestd;intfangan(intn){// 重点找到递归出口if(n0||n1){return1;}if(n2){return2;}returnfangan(n-1)fangan(n-2);}intmain(){intn;scanf(%d,n);intresfangan(n);printf(%d,res);return0;}