0 0

递归换位置5

namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {
            int b = 12345;
            Console.WriteLine(Resur(b, b.ToString().Length, ""));

        }
        public static int Resur(int number, int index, String s)
        {
            if (index == 0) return Convert.ToInt32(s);
            char[] ch = number.ToString().ToCharArray();
            if (index == number.ToString().Length)
            {
                String p = ch[index - 1].ToString();
                s += p;
            }
            else
                s += ch[index - 1].ToString();
            if (index == 0)
                return Convert.ToInt32(s);
            else
                return Resur(number, index - 1, s);
        }
    }
}


虽然写出来的,但发现逻辑有点问题,希望高手来指点下!!
2010年6月04日 14:02
目前还没有答案

相关推荐

    递归替换_递归替换_递归替换问题_

    递归替换问题的主要目标是创建一个程序,该程序能够遍历C/C++源文件,找到所有的`#include`指令,并将它们指向的文件内容实际插入到包含文件的位置。这涉及到文件读取、字符串处理以及递归调用,因为被包含的文件...

    递归算法到非递归算法的转换.ppt

    非递归版本的汉诺塔问题解决方案会将递归调用替换为对栈的操作,按照规则将盘片移动至目标位置。 总的来说,将递归算法转换为非递归算法需要深入理解问题的本质,找到合适的迭代策略,并有效地管理状态。虽然递归...

    LUT算法与数据结构课程设计---递归替换和二叉排列树

    插入操作通过比较新元素与当前节点的关系来确定插入位置,而删除操作则需要找到要删除节点并调整树的结构以保持有序性。二叉排列树的特性使得中序遍历可以得到有序序列,这在数据处理和排序中非常有用。 在这个课程...

    西南交通大学数据结构实验报告黑白棋.doxc递归算法设计及堆栈消除递归

    1. 状态定义:定义棋盘的状态,可以用二维数组来表示棋子的位置。 2. 基本结束条件:当棋盘达到目标状态时,返回步数。 3. 递归步骤:对于当前棋盘上的每个可移动棋子,尝试移动并检查是否能到达目标状态,若能则...

    递归习题.PDF

    递归是一种重要的编程思想,它的本质是将大问题分解为小问题,然后通过小问题的解决方法来解决大问题。在理解递归之前,我们首先要明白递归程序的结构。一个递归程序通常包含三个主要部分:递归的出口、分解子问题的...

    java 中的经典递归

    - **递归情况**:对于每个可能的位置`i`,将当前位置`start`与位置`i`的元素交换,并对剩下的元素进行全排列。之后再将元素交换回来,以便进行下一轮递归调用。 #### 五、递归的优点与缺点 - **优点**: - 代码...

    易语言递归算法进制转换源码

    1. **二进制转十进制**:通过逐位乘以2的幂然后求和的方式,每一步都将当前位值乘以2,然后根据位的位置进行累加。如果使用递归,每次调用会处理下一位,直到达到最低位(即二进制的最后一位)。 2. **十进制转二...

    编译系统设计 课程设计报告 哈工程 实验环境的使用、消除左递归(无替换)、提取左因子、First 集合、Follow集合、符号表

    - 将左递归转换为右递归或没有递归的形式。 - 例如,将A → Aα | β转换为A → βA',A' → αA' | ε。 3. **无替换的左递归消除** - 在某些情况下,不替换原规则,而是通过修改规则顺序来消除左递归。 #### ...

    递归算法习题

    选择排序可以利用递归实现,通过递归寻找剩余部分的最小或最大元素,并将其放在已排序部分的合适位置。 9. 递归算法求解整数分解为素数因子乘积 可以通过递归的方式将一个整数分解为若干个素数因子的乘积,每次找...

    C++递归思想课件下载

    通过递归函数,我们可以轻松地计算任意位置的斐波那契数。 ```cpp int fibonacci(int n) { if (n ) return n; return fibonacci(n-1) + fibonacci(n-2); } ``` ### 3. 递归的应用实例 #### 圆与直线划分平面 ...

    数据结构课件之递归ppt

    课件中提到的快速排序递归实现,就是利用递归在子数组上重复执行排序过程,直到所有元素都在正确位置上。 总的来说,递归是编程中的强大工具,它能简化问题表示,但同时也需要谨慎使用,以避免性能问题。理解和掌握...

    koch曲线的递归算法

    2. **第一步递归**:将这条线段分成三等份,然后在中间两段的中间位置各添加一个边长为1/3的等边三角形。这样,原来的线段被四个新的线段替代,总长度增加到4/3。 3. **递归迭代**:对新形成的每一条线段重复上述...

    递归练习 数据结构实验全排列

    在全排列问题中,我们可以通过递归函数实现,每次选取一个元素并尝试将其放入已排序部分的各个位置,然后对剩余元素重复此过程,直到所有元素都已被选择并放置。 递归算法通常包含两个部分:基本情况(base case)...

    递归下降法实现语法分析器(java)

    - 首先,解析器从输入符号流的起始位置开始,调用对应文法起始符号的方法。 - 在解析方法内部,根据文法规则检查当前输入符号是否符合规则的左侧部分。如果符合,就调用子方法处理右侧的文法规则。 - 子方法会...

    编译原理递归下降实验报告

    例如,当在预期的位置没有找到正确的符号时,Error()函数会被调用。 对于文法G[E]的程序,E()是主入口,它调用T()。T()调用F(),然后根据当前的输入符号进行不同的操作,如判断是否为'+'或'*',或者是否为'i'或'('...

    java编写的递归算法的经典事例

    在这个例子中,通过交换 `buf` 数组中的元素位置,并递归调用 `perm` 函数来处理剩余的子数组,从而逐步构建出所有可能的排列组合。 ##### 3. 具体步骤分析 1. **初始化**:首先定义一个字符数组 `buf` 和一个 `...

    【数据结构】——搜索二叉树的插入,查找和删除(递归&非递归)

    如果新节点的键小于根节点的键,则在左子树中递归寻找插入位置;反之,则在右子树中递归寻找。这个过程持续到找到一个空位为止,然后将新节点插入。 2. 非递归插入:使用栈来模拟递归过程,从根节点开始,依次与每...

    全排序算法c++递归实现

    此函数用于在递归过程中调整数组元素的位置,以确保生成新的排列。 9. **交换函数**:`void swap(int& a, int& b)`。用于交换两个整数的值。 #### 三、递归原理分析 递归是一种强大的编程技术,它允许函数调用自身...

    冒泡排序和递归求和实现

    冒泡排序是一种简单的排序算法,它的基本思想是通过重复遍历待排序的序列,依次比较相邻元素并交换位置,使序列中的大元素逐渐“浮”到序列末尾,就像水中的气泡最终会上升到水面一样。这个过程会重复进行,直到序列...

    用java实现的经典递归算法

    否则,遍历数组并交换`low`位置和当前位置的元素,递归处理剩下的元素,最后还原交换以保持原始数组不变。 通过这些例子,我们可以看到递归在解决分治策略问题时的威力。理解递归的关键在于理清递归出口条件和如何...

Global site tag (gtag.js) - Google Analytics