递归和迭代

1 篇文章 0 订阅
1 篇文章 0 订阅

一递归:

       程序调用自身的编程技巧称为递归(百科解释)。也就是以相似的方式重复自身的                过程。在程序中表现为,在函数定义中直接或者间接的调用自身,常用的递归函数

         特点:(A调用A)

         分为“递推”和“回归”的过程,当“递推”到达底部时,也就是到达终止条件时,就会开始      “回归”,有去有回。

         函数中的具体形式:

         Void recurs (argumentlist)

              {

                     Statements1;

                     If(test)

                            {

                                   resurs(arguments);

                     statements2;

              }

              举例:

       有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,       他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一   个人大两岁。最后问第一个人,他说是10岁。请问第五个人多大?

二、迭代

         迭代是重复反馈过程的活动,其目的通常是为了逼近所需目标或结果。每一次对过程     的重复称为一次“迭代”,而每一次迭代得到的结果会作为下一次迭代的初始值(百科)

      特点:(A重复调用B)

       

对比:

递归和迭代实现斐波那契数列:

#include <iostream>
using namespace std;
int fibRecursion(int);    
void fibInteration(int);
#define  N 10
int  main()
{
    int i;
    puts("两种方法实现长度为10的斐波那契数列:");
    fibInteration(N);
    for (i = 1; i <= N; i++)
        cout << fibRecursion(i) << '\t';
    return 0;
}
void  fibInteration(int l)
{
        int t1 = 1;
        int t2 = 1;
        int i, t;
        for (i = 0; i < 10; i++)
        {
            cout << t1 << '\t';
            t = t1 + t2;
            t1 = t2;
            t2 = t;
        }
        putchar('\n');
}

 int fibRecursion(int i)
{
     if (i < 2)
         return i == 0 ? 0 : 1;
     else
         return fibRecursion(i - 1) + fibRecursion(i - 2);
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值