zoukankan      html  css  js  c++  java
  • 数据结构笔记 递推与迭代

    /*
    递推算法:
        通过已知条件,利用特定关系得到中间结论,然后得到最后结果。
        1.顺推法:
            从已知条件出发,逐步推导出要解决问题的方法。
            例如斐波拉契数列。
        2. 逆推法
            根据结果推导出已知条件   
    */ 
    
    // 斐波拉契数列的递推实现
    
    # include <stdio.h>
    
    int main(void)
    {
        int Fn, f1, f2;
        // 初始值
        f1 = 1;
        f2 = 1;
        int cnt;
        printf("请输入您想求解的数列元素位数:");
        scanf("%d", &cnt);
        if (1 == cnt)
            Fn = f1;
        else if (2 == cnt)
            Fn = f2;
        else
        {
            int i;
            for (i = 3; i <= cnt; ++i)
            {
                Fn = f1 + f2;
                f1 = f2;
                f2 = Fn;
            }
        } 
        printf("斐波拉契数列中第%d为%d!
    ", cnt, Fn);
        
        
        return 0;
    } 
    /*
    迭代算法:
        迭代算法又称为辗转法,是一种不断用旧的变量值递推得到
        新的变量值的过程。
    迭代法与递推法相同之处在于都是使用循环语句实现。不同之处
    在于,迭代法使用的是 while 循环,而递推法使用的是 for 循
    环。迭代法在迭代结束后得到一个解或一组解,递推法的循环控
    制变量改变一次就得到一个解,循环结束得到一系列的解。迭代
    法的迭代次数事前是未知的,而递推法的递推次数事前是已知的
    
    迭代法分为精确迭代和未知迭代。
    精确迭代:
        通过迭代可以得到一个精确的解。例如:求最大公约数,进
        制转换,质因数的分解 ,谷角猜想。
    近似迭代:
        通过迭代得到近似的解。例如:二分法,求定积分。 
    */ 
    
    // 利用精确迭代法求最大公约数和最小公倍数
    
    # include <stdio.h>
    
    int main(void)
    {
        int i, j;
        printf("请输入两个正整数:");
        scanf("%d %d", &i, &j);
        int r;  //  表示余数
        int f1, f2;
        if (i < j)
        {
            f1 = j;
            f2 = i;
        } 
        else
        {
            f1 = i;
            f2 = j;
        }
        while (0 != (f1 % f2))
        {
            r = f1 % f2;
            f1 = f2;
            f2 = r;
        }
        printf("最大公约数为 %d
    最小公倍数为 %d
    ", r, i*j/r);
        
        return 0;
    } 
  • 相关阅读:
    字体辉光效果
    C# 读写 Photoshop PSD文件 操作类
    SQL Server日期时间格式转换字符串详解
    用DataTable填充实体类List
    C#控件的闪烁问题解决方法总结
    .NET Framework的属性类对控件的支持功能
    Aspose破解版本dll
    整理的C#屏幕截图,控件截图程序
    C#绘制渐变背景
    VS2010编译的时候出现fatal error LNK1146: 没有用选项“/out:”指定的参数
  • 原文地址:https://www.cnblogs.com/lnlin/p/6776899.html
Copyright © 2011-2022 走看看