붕망과 같다.Net Basic 1 특강: 반복

2469 단어
1절 1 - 귀환은 무엇입니까?늙은 중이 이야기를 하다
귀속: 방법은 스스로 자신을 호출한다.(종료 조건이 있어야 함)
스스로 귀속 호출 과정을 분석하다
매번 호출 방법은 방법에 메모리 공간을 만들고 한 방법의 두 번 호출하면 두 개의 메모리 공간이 있습니다.
모든 냉색 이 호출되는 국부 변수 는 서로 영향 을 주지 않고 독립적 이다
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 2 섹션 2 - 재귀적 사례: 계승
두 가지 조건:
    1.추이 방법;
    2.귀속의 종지 조건 (어떤 상황이 다시 귀속되지 않는가)
계승:5!=5*4*3*2*1   f(n)=n*f(n-1)
        // : 。 : ; : 。
        // :5!=5*4*3*2*1。6!=6*5*4*3*2*1。f(n)=n*f(n-1)
        static int jiecheng(int n)
        {
            // 
            //return n * jiecheng(n - 1);
            if (n < 0) { throw new Exception("n "); } if (n == 0) { return 1; } return n * jiecheng(n - 1); }

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 3 절 3 - 역귀사례: 페포나치 이마 수열
     //1,1,2,3,5,8,13,21..... n ( 0 ) ? 
        // :f(n)=f(n-1)+f(n-2)。 :n=0,1 return 1。
        static int fib(int n)
        {
            if (n < 0) { throw new Exception("n "); } if (n == 0 || n == 1) { return 1; } return fib(n - 1) + fib(n - 2); }

- - - - - - - - - - - - - - - 4 섹션 4 - 비귀속 알고리즘
  static int jiecheng2(int n)
        {
            if (n < 0)// !
 { throw new Exception("n "); } //n*(n-1)*(n-2)*1 int result = 1; for (int i = 1; i <= n; i++) { result = result * i; } return result; } static int fib2(int n) { if (n < 0) { throw new Exception("n "); } if (n == 0||n==1) { return 1; } int[] nums= new int[n+1]; nums[0] = 1; nums[1] = 1; for (int i = 2; i < n + 1; i++) { nums[i] = nums[i - 1] + nums[i - 2]; Console.WriteLine(string.Join(",",nums));//string.Join ,   } return nums[n];//  }

단점: 귀속 호출 프로그램이 많고 효율이 낮으며 점 메모리가 크다(어떤 귀속 알고리즘은 비귀속 알고리즘으로 전환할 수 있다)
파라미터 합법성 검사는 면접 시 가산점이다.
  string.Join은 집합을 어떤 구분자로 연결하여 문자열로 만든다
면접의 중점은 곱하기와 피보나치 수열의 귀속과 비귀속 알고리즘이다.(손으로 쓴다)
 
여붕망:http://www.rupeng.com

좋은 웹페이지 즐겨찾기