zoukankan      html  css  js  c++  java
  • 第一讲 递归与循环2

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    /*
    * @Author: SHUAI
    * @Date:   2015-12-03 17:13:08
    */
    /*
            求数组的元素和(数组的属性:数组名,长度)
            1.区间[ a[begin]...a[end] )
            2.折半求和【 a[begin], a[mid] ) +  【 a[mid], a[end] 】
    */
    #include <stdio.h>
    #define N 5
    int fun(int a[], int length, int begin, int end) {
      int sum;
      if (begin == end || begin == length) return 0;
      sum = fun(a, length, begin + 1, end);
      return sum + a[begin];
    }
     
    int main(void) {
      int a[N] = {1, 2, 3, 4, 5};
      printf("%d ", fun(a, N, 0, 4));//第0到第三个之和
      return 0;
    }

     

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    #include <stdio.h>
    #define N 8
    int fun(int a[], int begin, int end) {
      //只写了主要算法,没做越界判断什么的。
      if (begin == end) return a[begin];
      if (end - begin == 1) return a[begin] + a[end];
      return fun(a, begin, (begin + end) / 2 - 1) + fun(a, (begin + end) / 2, end);
    }//[begin, mid)  [mid, end)
     
    int main(void) {
      int a[N] = {1, 2, 3, 4, 5, 6, 7, 8};
      printf("%d ", fun(a, 0, 5));
      return 0;
    }

    =============注===============

    部分叙述来自于蓝桥杯讲解视频。

  • 相关阅读:
    项目总结1--技术
    基于MFC的Opengl实现动画
    vs2010 MFC Opengl实现
    设计模式-状态模式
    设计模式-访问者模式
    设计模式-责任链模式
    设计模式-中介者模式
    设计模式-命令模式
    设计模式-备忘录模式
    设计模式-观察者模式
  • 原文地址:https://www.cnblogs.com/startnow/p/5017800.html
Copyright © 2011-2022 走看看