zoukankan      html  css  js  c++  java
  • 递归

    递归的思想就是:把问题分解成为规模更小的、具有与原问题有着相同解法的问题。

    递归使用的条件:

    • 可以通过递归调用来缩小问题规模,且新问题与原问题有着相同的形式。
    • 存在一种简单情境,可以使递归在简单情境下退出。

    在编写递归调用的函数的时候,一定要把对简单情境的判断写在最前面,以保证函数调用在检查到简单情境的时候能够及时地中止递归,否则,你的函数可能会永不停息的在那里递归调用了。

    简单的自己调用自己

    int jiecheng(n)                                           

    {

         if(n==1)

                 return 1;

        else 

              return n * jiecheng(n-1);//后者返回的是一个函数值相当于f(n-1)

    }

    以上相当于  f(n)=n*f(n-1)  \原先的规模为n  通过分解令规模为1  此时方便求解 再令规模为2 直至 n

                    f(n-1)=(n-1) * f(n-2)

              直到 f(2)= 2 * f(1)  其中f(1)已知  故可推回f(2 ) f(3)  知道f(n)

    字符串回文递归判断

    如何减小规模:我们发现 回文字符串 去掉两端依旧回文

    方法   :先判断给定字符串的首尾字符是否相等,若相等,则判断去掉首尾字符后的字符串是否为回文,若不相等,则该字符串不是回文。

               不断减小规模 由n个字符 减少到1或两个字符

    return ((str[0] == str[n-1]) ? is_palindereme(str+1, n-2) : 0); 

     
  • 相关阅读:
    单例模式创建
    盛最多水的容器
    魔术索引
    钢条切割
    比较版本号
    矩阵中的路径
    机器人的运动范围
    计网基础问题
    Linux 下android环境的配置
    Fedora15下安装Android开发环境
  • 原文地址:https://www.cnblogs.com/wshyj/p/6011717.html
Copyright © 2011-2022 走看看