#2109. C++-问与答-递归

C++-问与答-递归

Background

Description

递归算法(recursion algorithm)在计算机科学中是指一种通过重复将问题分解为同类的子问题而解决问题的方法。递归式方法可以被用于解决很多的计算机科学问题,因此它是计算机科学中十分重要的一个概念。绝大多数编程语言支持函数的自调用,在这些语言中函数可以通过调用自身来进行递归。计算理论可以证明递归的作用可以完全取代循环,因此在很多函数编程语言(如Scheme)中习惯用递归来实现循环。

递归算法应用的场景是要解决的问题和其子问题具有相似性的时候,通过直接或间接的调用自己求出问题解的方法。它是通过解决一个问题的更小实例来解决一个大的问题的解的算法。递归算法有两个过程,一是调用过程,二是向上传递结果的过程。

能够解决的问题 1.数据的定义是按递归定义的。如Fibonacci函数。 2.问题解法按递归算法实现。如Hanoi问题。 3.数据的结构形式是按递归定义的。如二叉树、广义表等。

Format

Input

Output

Samples



Limitation

1s, 1024KiB for each test case.