zoukankan      html  css  js  c++  java
  • 函数递归与迭代

    递归的缺陷:当运行较多次数的压栈过程会导致运算量过大。可是每个尾递归都能够写成循环(用一个不土的说法就是迭代)

    fabonacii数列用迭代方式实现:

    #include<stdio.h>
    int Fibonacii(int n)
    {
        int temp = 0;
        int a = 1;//记得给头两个数赋初值
        int b = 1;
        if(n <= 2)
            return 1;
        while(n > 2)
        {
            temp = a + b;
            a = b;
            b = temp;//切忌写成 a = temp; b = a;这时的a已经改变!=1再赋给b已经没有意义
            n--;//调整ab中存放的值向前移动
        }
        return temp;
    }
    int main()
    {
        printf("%d
    ",Fibonacii(6));
        return 0;
    }
    


    用迭代的方式实现阶乘:

    #include<stdio.h>
    int fac(int n)
    {
        int ret = 1;
        while(n)
        {
            ret = ret * n;
            n--;// ret = 1*n,ret = n*(n-1) ....倒着往回乘
        }
        return ret;
    }
    int main()
    {
        printf("%d
    ",fac(3));
        return 0;
    }
    


  • 相关阅读:
    QQ列表展示
    拖动条SeekBar
    信息提示框、对话框
    键盘事件、触摸事件
    时间日期事件处理,长按事件
    图片切换示例
    索引值的应用
    this的应用
    自定义属性应用1
    自定义属性应用
  • 原文地址:https://www.cnblogs.com/blfbuaa/p/6814860.html
Copyright © 2011-2022 走看看