递归与迭代的区别

递归:   调用自己的编程方法,即是自己调用自己,A调用A,使用递归的时候需要注意的两点:

     1,  必须在过程或是函数中调用自己

     2,必须有递归出口来终止递归过程

迭代: 用原值推算出一个新值,即是A调用B

递归中一定有迭代,但是反之不成立,程序设计的时候优先考虑使用迭代,因为递归过程太多的话容易造成栈溢出。


比如1+2+........+n的和:

递归:

long sum(int n)
{
    if (n>1)
        return sum(n-1)+n;
    else
        return 1;
}
迭代:

long   sum(int n)
{
    int sum = 0;
    int index;
    for (index = 1; index <= n; index++)
         s = s + index;
    return sum;
}



你可能感兴趣的:(C/C++)