zoukankan      html  css  js  c++  java
  • 算法竞赛入门经典_3_顺序结构程序设计

    代码:

    //2017-6-21 1.3顺序程序结构设计
    
    #include <stdio.h>
    
    //输入一个三位数,分离出它的百,十,个,反转后输出
    void Divid();
    void Divid2();//优化后的,考虑首位为0时
    //输入两个整数a,b,交换两者的值,然后输出
    void ChangeTwoNum1();
    void ChangeTwoNum2();
    void ChangeTwoNum3();
    void ChangeTwoNum4();
    
    int main()
    {
        Divid();
        Divid2();
        ChangeTwoNum1();
        ChangeTwoNum2();
        ChangeTwoNum3();
        ChangeTwoNum4();
    
        return 0;
    }
    void Divid()
    {
        int n;
        scanf("%d", &n);
        printf("%d%d%d
    ", n%10, n/10%10, n/100);
    
    }
    void Divid2()
    {
        int n, m;
        scanf("%d", &n);
        m = (n%10)*100 + (n/10%10)*10 + (n/100);
        printf("%03d
    ", m);
    }
    void ChangeTwoNum1()
    {
        int a, b, t;
        scanf("%d%d", &a, &b);
        t = a;
        a = b;
        b = t;
        printf("%d %d
    ", a, b);    
    }
    void ChangeTwoNum2()
    {
        int a, b;
        scanf("%d%d", &a, &b);
        a = a + b;
        b = a - b;
        a = a - b;
        printf("%d %d
    ", a, b);
    }
    void ChangeTwoNum3()
    {
        int a, b;
        scanf("%d%d", &a, &b);
        a^= b^= a^= b;
        printf("%d %d
    ", a, b);
    }
    void ChangeTwoNum4()
    {
        int a, b;
        scanf("%d%d", &a, &b);
        printf("%d %d
    ", b, a);
    }

    • 百位:n/100, 十位: n /10%10, 个位:n%10
    • 算法竞赛题目应当是严密的,各种情况下的输出均有严格规定.
    • ChangeTwoNum2(),ChangeTwoNum3()函数的两个算法不建议使用,只有在定义了加减异或的数据类型才能使用
    • ChangeTwoNum4()函数就用了技巧

    1.多数算法竞赛采用黑盒测试,只考查程序解决问题的能力,而不关心用了什么方法

    2.应保持简单(Keep It Sample and Stupid,KISS),而不是自己创造条件去展示编程技巧

    3.算法竞赛是在比谁能更好地解决问题,而不是在比谁写的程序看上去更高级

  • 相关阅读:
    机器学习之逻辑回归
    机器学习之线性回归与模型保存
    机器学习之决策树
    机器学习之贝叶斯算法
    机器学习之KNN算法
    算法基础与开发流程
    特征选择与特征降维
    特征预处理
    RSA加密算法和签名算法
    Java中使用OpenSSL生成的RSA公私钥
  • 原文地址:https://www.cnblogs.com/ncgds/p/7057027.html
Copyright © 2011-2022 走看看