广州中心网站建设深圳公司免费网站建设怎么样

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

广州中心网站建设,深圳公司免费网站建设怎么样,备案查询网站,搜索引擎优化代理#x1f4da; Introduction 递归是一种常用的算法设计和问题求解方法。它基于问题可以分解为相同类型的子问题#xff0c;并通过解决子问题来解决原始问题的思想。递归算法在实际编程中具有广泛的应用。 #x1f3af; 递归算法解决问题的特点 递归算法具有以下特点#… Introduction 递归是一种常用的算法设计和问题求解方法。它基于问题可以分解为相同类型的子问题并通过解决子问题来解决原始问题的思想。递归算法在实际编程中具有广泛的应用。 递归算法解决问题的特点 递归算法具有以下特点 问题可以分解为相同类型的子问题。递归算法通过解决子问题来解决原始问题。递归算法在解决问题时使用自己调用自己的方式。 递推算法练习题 1. 斐波那契数列 题目描述: 斐波那契数列是指这样的数列数列的第一个和第二个数都为1接下来每个数都等于前面两个数之和。现在给定一个正整数n要求计算斐波那契数列的第n个数。 思路解析: 基本情况: 当n为1或2时直接返回1。递归过程: 对于其他n递归计算斐波那契数列的第n-1和n-2个数并将它们相加。 #include iostream using namespace std;int fibonacci(int n) {if (n 2) {return 1;}return fibonacci(n - 1) fibonacci(n - 2); }int main() {int n 6;cout 斐波那契数列的第 n 个数为 fibonacci(n) endl;return 0; }解题步骤图: #mermaid-svg-qAbg7s2sR2ANQE4G {font-family:“trebuchet ms”,verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-qAbg7s2sR2ANQE4G .error-icon{fill:#552222;}#mermaid-svg-qAbg7s2sR2ANQE4G .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-qAbg7s2sR2ANQE4G .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-qAbg7s2sR2ANQE4G .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-qAbg7s2sR2ANQE4G .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-qAbg7s2sR2ANQE4G .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-qAbg7s2sR2ANQE4G .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-qAbg7s2sR2ANQE4G .marker{fill:#333333;stroke:#333333;}#mermaid-svg-qAbg7s2sR2ANQE4G .marker.cross{stroke:#333333;}#mermaid-svg-qAbg7s2sR2ANQE4G svg{font-family:“trebuchet ms”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-qAbg7s2sR2ANQE4G .label{font-family:“trebuchet ms”,verdana,arial,sans-serif;color:#333;}#mermaid-svg-qAbg7s2sR2ANQE4G .cluster-label text{fill:#333;}#mermaid-svg-qAbg7s2sR2ANQE4G .cluster-label span{color:#333;}#mermaid-svg-qAbg7s2sR2ANQE4G .label text,#mermaid-svg-qAbg7s2sR2ANQE4G span{fill:#333;color:#333;}#mermaid-svg-qAbg7s2sR2ANQE4G .node rect,#mermaid-svg-qAbg7s2sR2ANQE4G .node circle,#mermaid-svg-qAbg7s2sR2ANQE4G .node ellipse,#mermaid-svg-qAbg7s2sR2ANQE4G .node polygon,#mermaid-svg-qAbg7s2sR2ANQE4G .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-qAbg7s2sR2ANQE4G .node .label{text-align:center;}#mermaid-svg-qAbg7s2sR2ANQE4G .node.clickable{cursor:pointer;}#mermaid-svg-qAbg7s2sR2ANQE4G .arrowheadPath{fill:#333333;}#mermaid-svg-qAbg7s2sR2ANQE4G .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-qAbg7s2sR2ANQE4G .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-qAbg7s2sR2ANQE4G .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-qAbg7s2sR2ANQE4G .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-qAbg7s2sR2ANQE4G .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-qAbg7s2sR2ANQE4G .cluster text{fill:#333;}#mermaid-svg-qAbg7s2sR2ANQE4G .cluster span{color:#333;}#mermaid-svg-qAbg7s2sR2ANQE4G div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:“trebuchet ms”,verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-qAbg7s2sR2ANQE4G :root{–mermaid-font-family:“trebuchet ms”,verdana,arial,sans-serif;} 是 否 计算第n个斐波那契数 n 2? 返回1 计算第n-1个斐波那契数 计算第n-2个斐波那契数 返回第n-1和n-2个斐波那契数的和 2. 阶乘计算 题目描述: 阶乘是指从1乘积到给定的正整数n。现在给定一个正整数n要求计算n的阶乘。 思路解析: 基本情况: 当n为0或1时直接返回1。递归过程: 对于其他n递归计算n-1的阶乘并将其乘以n。 #include iostream using namespace std;int factorial(int n) {if (n 1) {return 1;}return n * factorial(n - 1); }int main() {int n 5;cout n 的阶乘为 factorial(n) endl;return 0; }解题步骤图: #mermaid-svg-o0mdhJN0xkv3pqTW {font-family:“trebuchet ms”,verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-o0mdhJN0xkv3pqTW .error-icon{fill:#552222;}#mermaid-svg-o0mdhJN0xkv3pqTW .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-o0mdhJN0xkv3pqTW .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-o0mdhJN0xkv3pqTW .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-o0mdhJN0xkv3pqTW .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-o0mdhJN0xkv3pqTW .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-o0mdhJN0xkv3pqTW .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-o0mdhJN0xkv3pqTW .marker{fill:#333333;stroke:#333333;}#mermaid-svg-o0mdhJN0xkv3pqTW .marker.cross{stroke:#333333;}#mermaid-svg-o0mdhJN0xkv3pqTW svg{font-family:“trebuchet ms”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-o0mdhJN0xkv3pqTW .label{font-family:“trebuchet ms”,verdana,arial,sans-serif;color:#333;}#mermaid-svg-o0mdhJN0xkv3pqTW .cluster-label text{fill:#333;}#mermaid-svg-o0mdhJN0xkv3pqTW .cluster-label span{color:#333;}#mermaid-svg-o0mdhJN0xkv3pqTW .label text,#mermaid-svg-o0mdhJN0xkv3pqTW span{fill:#333;color:#333;}#mermaid-svg-o0mdhJN0xkv3pqTW .node rect,#mermaid-svg-o0mdhJN0xkv3pqTW .node circle,#mermaid-svg-o0mdhJN0xkv3pqTW .node ellipse,#mermaid-svg-o0mdhJN0xkv3pqTW .node polygon,#mermaid-svg-o0mdhJN0xkv3pqTW .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-o0mdhJN0xkv3pqTW .node .label{text-align:center;}#mermaid-svg-o0mdhJN0xkv3pqTW .node.clickable{cursor:pointer;}#mermaid-svg-o0mdhJN0xkv3pqTW .arrowheadPath{fill:#333333;}#mermaid-svg-o0mdhJN0xkv3pqTW .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-o0mdhJN0xkv3pqTW .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-o0mdhJN0xkv3pqTW .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-o0mdhJN0xkv3pqTW .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-o0mdhJN0xkv3pqTW .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-o0mdhJN0xkv3pqTW .cluster text{fill:#333;}#mermaid-svg-o0mdhJN0xkv3pqTW .cluster span{color:#333;}#mermaid-svg-o0mdhJN0xkv3pqTW div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:“trebuchet ms”,verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-o0mdhJN0xkv3pqTW :root{–mermaid-font-family:“trebuchet ms”,verdana,arial,sans-serif;} 是 否 计算n的阶乘 n 1? 返回1 计算n-1的阶乘 返回n-1的阶乘乘以n 3. 最大公约数 题目描述: 给定两个正整数a和b要求计算它们的最大公约数。 思路解析: 基本情况: 当b等于0时直接返回a。递归过程: 对于其他情况递归计算b和a除以b的余数的最大公约数。 #include iostream using namespace std;int gcd(int a, int b) {if (b 0) {return a;}return gcd(b, a % b); }int main() {int a 24;int b 36;cout a 和 b 的最大公约数为 gcd(a, b) endl;return 0; }解题步骤图: #mermaid-svg-ejIW1s9GDFYelmlB {font-family:“trebuchet ms”,verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-ejIW1s9GDFYelmlB .error-icon{fill:#552222;}#mermaid-svg-ejIW1s9GDFYelmlB .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-ejIW1s9GDFYelmlB .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-ejIW1s9GDFYelmlB .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-ejIW1s9GDFYelmlB .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-ejIW1s9GDFYelmlB .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-ejIW1s9GDFYelmlB .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-ejIW1s9GDFYelmlB .marker{fill:#333333;stroke:#333333;}#mermaid-svg-ejIW1s9GDFYelmlB .marker.cross{stroke:#333333;}#mermaid-svg-ejIW1s9GDFYelmlB svg{font-family:“trebuchet ms”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-ejIW1s9GDFYelmlB .label{font-family:“trebuchet ms”,verdana,arial,sans-serif;color:#333;}#mermaid-svg-ejIW1s9GDFYelmlB .cluster-label text{fill:#333;}#mermaid-svg-ejIW1s9GDFYelmlB .cluster-label span{color:#333;}#mermaid-svg-ejIW1s9GDFYelmlB .label text,#mermaid-svg-ejIW1s9GDFYelmlB span{fill:#333;color:#333;}#mermaid-svg-ejIW1s9GDFYelmlB .node rect,#mermaid-svg-ejIW1s9GDFYelmlB .node circle,#mermaid-svg-ejIW1s9GDFYelmlB .node ellipse,#mermaid-svg-ejIW1s9GDFYelmlB .node polygon,#mermaid-svg-ejIW1s9GDFYelmlB .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-ejIW1s9GDFYelmlB .node .label{text-align:center;}#mermaid-svg-ejIW1s9GDFYelmlB .node.clickable{cursor:pointer;}#mermaid-svg-ejIW1s9GDFYelmlB .arrowheadPath{fill:#333333;}#mermaid-svg-ejIW1s9GDFYelmlB .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-ejIW1s9GDFYelmlB .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-ejIW1s9GDFYelmlB .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-ejIW1s9GDFYelmlB .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-ejIW1s9GDFYelmlB .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-ejIW1s9GDFYelmlB .cluster text{fill:#333;}#mermaid-svg-ejIW1s9GDFYelmlB .cluster span{color:#333;}#mermaid-svg-ejIW1s9GDFYelmlB div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:“trebuchet ms”,verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-ejIW1s9GDFYelmlB :root{–mermaid-font-family:“trebuchet ms”,verdana,arial,sans-serif;} 是 否 计算a和b的最大公约数 b 0? 返回a 计算b和a除以b的余数的最大公约数 以上代码分别使用递归算法解决了斐波那契数列、阶乘计算和最大公约数的问题。通过递归的方式我们可以简洁地解决这些问题并且代码具有可读性和可维护性。 总结 递归算法是一种强大的问题求解方法通过将问题分解为相同类型的子问题可以高效地解决各种复杂的问题。在编写递归算法时需要注意定义好基本情况和递归的终止条件确保算法的正确性和有效性。通过递归算法的练习我们可以更深入地理解递归思想和算法设计的精妙之处。 ⭐️希望本篇文章对你有所帮助。 ⭐️如果你有任何问题或疑惑请随时向提问。 ⭐️感谢阅读