zoukankan      html  css  js  c++  java
  • 算法

    一.概念认知

    算法:解决一个问题而采取的方法和步骤

    算法+数据结构=程序

    算法是灵魂、数据结构是加工对象、语言是工具、编程需要采用合适的方法

    算法分为:数值运算和非数值运算(排序算法、查找算法)

    算法的特性:

    • 有穷性:步骤有限
    • 确定性:步骤不可模棱两可
    • 有零个或多个输入:从外界取得的必要信息
    • 有一个或多个输出:输出
    • 有效性:每个步骤都能有效执行

    我老师常说:要有思路,指的就是算法,所以编程不急着敲代码,而在于先在纸上想出算法(方法和步骤),再用编程语言表达出来.


    二.简单算法示例

    计算1*2*3*4*5

    分析:一个作为乘数,一个作为被乘数,还要有一个数据变量作为乘数和被乘数积的存储仓库

    不妨设p为乘数,i为被乘数,将它们的积给p

    步骤:设p=1

    设i的初始值为1,即i=1;

    第一次的积为p*i=1*1;此时积的值在p中;

    观察可知:是自然数的递增,1、2、3....每次计算完让i++(自加1),进行下一次运算;

    使用for循环指定最终值(同时指明了计算次数)

    #include <stdio.h>
    int main()
    {
        int p=1;
        int i,q;
        scanf_s("%d",&q);
        for(i=1;i<=q;i++){
            p=p*i;
        }
        printf("%d",p);
        return 0;
    }

    程序稍有改动:最终数是键盘输入

    例二:计算1*3*5*7...

    观察到被乘数相对于前一个被乘数大二,稍微改动

    #include <stdio.h>
    int main()
    {
        int p=1;
        int i,q;
        scanf_s("%d",&q);
        for(i=1;i<=q;){
            p=p*i;
            i=i+2;
        }
        printf("%d",p);
        return 0;
    }

  • 相关阅读:
    简明Python3教程 12.问题解决
    简明Python3教程 11.数据结构
    【SPOJ 694】Distinct Substrings
    【codeforces Manthan, Codefest 17 C】Helga Hufflepuff's Cup
    【CF Manthan, Codefest 17 B】Marvolo Gaunt's Ring
    【CF Manthan, Codefest 17 A】Tom Riddle's Diary
    【SPOJ 220】 PHRASES
    【POJ 3261】Milk Patterns
    【POJ 3294】Life Forms
    【POJ 1226】Substrings
  • 原文地址:https://www.cnblogs.com/zjm1999/p/10294332.html
Copyright © 2011-2022 走看看