一、概念:
函数体内调用本函数自身,直到符合某一条件不再继续调用。
二、应满足条件:
(1)有反复执行的过程(调用自身);
(2)有跳出反复执行过程的条件(函数出口)
三、注意事项:
1、递归中必须要存在一个循环结束的条件。
2、递归函数的每次调用都需要栈来存储,如果次数太多的话容易造成栈溢出。
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace 递归 { class Program { //卖羊 //public int yang(int n) //{ // int sum = 0; // if (n == 8) // { // return 2; // } // sum = 2 * (yang(n + 1) + 1); // return sum; //} //猴子吃桃 public int hs(int n) { int sum = 0; if (n == 10) { return 3; } sum = 4*(hs(n + 1) + 1); return sum; } static void Main(string[] args) { ////一群羊赶到各村庄去卖,每过一个村卖掉之前总数的1/2零1只,过了7个村庄之后还剩两只,问最初赶出多少羊 //Program hanshu = new Program(); //int a = hanshu.yang(1); //Console.WriteLine("最初赶了{0}只羊!",a); //Console.ReadLine(); //猴子吃桃,第一天吃掉总数的四分之三零一个,以此类推吃了9天后剩下3个,问猴子总共摘了多少桃子 Program hanshu = new Program(); int a = hanshu.hs(1); Console.WriteLine("猴子总共摘了{0}个桃子!",a); Console.ReadLine(); } } }