算法解读 ---- 递归(一)

算法的最重要的是算法设计的模型,以及该模型背后的设计思想。

定义:
递归从编程的角度上理解:递归就是一个过程或者函数在其定义中直接或间接调用自身的一种方法。

递归是一种用来描述问题和解决问题的基本方法。

特点:
通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解。

一般说来,递归需要有边界条件、递归前进段和递归返回段、当边界条件不满足时,递归前进;当边界条件满足时,递归返回。

递归算法:
第一步:将原问题分解多个具有类似于原问题特性的子问题。(递归关系)
第二步:确定一个或者多个无须分解、可直接求解的最小子问题(递归的终止条件)

举例:

输入两个整数x,n,计算x 的n次幂,结果对10000007取模。

问题描述:

上述题意:可归结为:
1、递归关系:x^n = x*x^(n-1)
2、边界条件:当n=0时候,x=1

参考代码:

#include <QCoreApplication>#include<iostream>#define MOD 10000007long long power(int x,int n)
{long long ans;if(n==0) ans = 1;else{ans=x*power(x,n-1)%MOD;}return ans%MOD;
}using namespace std;int main(int argc, char *argv[])
{QCoreApplication a(argc, argv);int x;int n;cout<<"please Enter x:" <<endl;cin>>x;cout<<"please Enter n:"<<endl;cin>>n;cout<<"the answer is :"<<power(x,n);return a.exec();
}

算法解读 ---- 递归(一)相关推荐

  1. 算法解读--递归(二)

    递归算法思想就是把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解. 从模型上来思考的话就需要解决两个要素:递推关系和递推边界. 问题: 数的组合问题,从n个数中选出m个数,结果按照 ...

  2. 索骥馆-编程语言之《程序语言的奥妙:算法解读(四色全彩)》扫描版[PDF]

    内容简介: 在我们生活的世界中,各种各样形形色色的事物和现象,其中都必定包含着科学的成分.在这些成分中,有些是你所熟知的,有些是你未知的,有些是你还一知半解的.面对未知的世界,好奇的你是不是有很多疑惑 ...

  3. 算法之递归(3)- 链表操作

    算法之递归(3)- 链表操作 递归(2)尝试了一个单链表的遍历,同时又分析了如何添加自己的操作,是在递归调用之前,还是在递归调用之后. 今天,打算将问题深入一下,即添加相应的操作在递归的过程中. (免 ...

  4. 【HLSL学习笔记】WPF Shader Effect Library算法解读之[DirectionalBlur]

    原文:[HLSL学习笔记]WPF Shader Effect Library算法解读之[DirectionalBlur] 方位模糊是一个按照指定角度循环位移并叠加纹理,最后平均颜色值并输出的一种特效. ...

  5. 数据结构与算法之递归题目

    数据结构与算法之递归题目 目录 求n!的结果 汉若塔问题 打印字符串的全部子序列,包括空字符串 打印一个字符串的全部排序 1. 求n!的结果 public static long getFactori ...

  6. java面试宝典 之 物流配送路径优化问题分析与算法解读

    物流配送路径优化问题分析与算法解读(一)         去年五一跳蚤以后,一直在一家公司参与物流配送软件开发的相关工作,负责的工作内容包括物流配送路径优化这一块.关于物流配送这一专业领域,自己以前也 ...

  7. Java入门算法(递归篇)丨蓄力计划

    本专栏已参加蓄力计划,感谢读者支持 往期文章 一. Java入门算法(贪心篇)丨蓄力计划 二. Java入门算法(暴力篇)丨蓄力计划 三. Java入门算法(排序篇)丨蓄力计划 四. Java入门算法 ...

  8. 2.2基本算法之递归和自调用函数_数据结构与算法之5——队列和栈

    栈和队列比较简单,而且实用性非常广泛,这里主要介绍一下他们的概念和实现,在很多算法中,栈和队列的运用很重要,因此,虽然简单确是最重要的数据结构之一,必须重视. 栈是保证元素后进先出(后存入者先使用,L ...

  9. java算法的递归问题设计_java算法-递归算法思想

    递归算法是跟常见的算法思想.使用递归算法,往往可以简化代码编写,提高程序的可读性.但是,不适合的递归往往导致程序的执行效率变低. 一.递归算法基本思想 递归算法即在程序中不断反复调用自身来叨叨求解问题 ...

最新文章

  1. 小黑盒不显示服务器,steam上买的游戏小黑盒不显示 | 手游网游页游攻略大全
  2. LiteRouter 路由
  3. leetcode 287. 寻找重复数(Find the Duplicate Number)
  4. 【待继续研究】解析信用评分模型的开发流程及检验标准(晕乎乎,看不懂~)
  5. 如何在单台计算机上配置 Windows XP SP2 网络保护技术
  6. 如何确定电脑主板坏了_【不良资产 】(第1422期)银行在打包不良资产出售之前,会如何处置不良资产?...
  7. Log4j比较全面的配置
  8. 「LibreOJ Round #11」Misaka Network 与测试 (网络流跑二分图匹配)
  9. 多线程蜂鸣器研究,友善之臂Smart210开发版
  10. PHP通过字符串调用函数
  11. ajax中的application/x-www-form-urlencoded中的使用
  12. 编程初学者入门训练-KiKi和酸奶
  13. BERYL和COMPIZ FUSION的安装与使用
  14. http://blog.sina.com.cn/s/blog_a3d2fd2d0101hyu7.html
  15. Spark的坑--Spark新手必看--Python Spark必读,耗费了我近三周的时间
  16. wheel文件安装以及换源安装
  17. 【C语言】复数的四则运算与复数运算的头文件
  18. 智慧城市的应用挑战,昇腾AI给出了新解法
  19. 金色丝线将瞬间一分为二 树状数组的使用
  20. 一个niubility的Vue游戏,真厉害!

热门文章

  1. VTK序列图像的读取
  2. Matlab中newff函数使用方法和搭建BP神经网络的方法
  3. 【云炬大学生创业基础笔记】第1章第3节 什么是创业测试
  4. [云炬创业基础笔记]第十章企业的利润计划测试6
  5. [云炬创业基础笔记] 第四章测试13
  6. linux 软链接_Liunx 命令之链接操作
  7. 系统间通信4:基本IO通信模型
  8. Encoder-Decoder (based on RNNS / LSTM)用于序列学习方案
  9. VTK修炼之道16:图像处理_窗口分割和图像融合(ViewportvtkImageBlend)
  10. SQL Server数据库管理常用SQL和T-SQL语句