通信,电信,互联网技术论坛
发新话题
打印

《数据结构》之递归算法 ——如何考虑用递归的方法来解决问题

《数据结构》之递归算法 ——如何考虑用递归的方法来解决问题

例:求s=1+2+3+4+5+6+……+n

  本来这个问题我们过去常用循环累加的方法。而这里如要用递归的方法,必须考虑两点:

  1) 能否把问题转化成递归形式的描述;

  2) 是否有递归结束的边界条件。

  设:函数s(n)=1+2+3+…+(n-1)+n

  显然递归的两个条件都有了:

  1) s(n) =s(n-1)+n

  2) s(1)=1

  所以源程序为:

  int progression(int n){

  int res;

  if (n=1 )res=1 else res=progression(n-1)+n;

  return res;

  }

TOP

发新话题