• 算法竞赛入门经典 第二章上机练习


    2-1  位数(digit)

    输入一个不超过10^9的正整数,输出它的位数。例如12735的位数是5.请不要任何数学函数,只用四则运算和循环语句实现。

    Code

    2-2  水仙花数(daffodil)

    输出100~999中的所有水仙花数。若3位数ABC满足ABC=A^3+B^3+C^3,则称其为水仙花数。例如153=1^3+5^3+3^3,所以153是水仙花数。

    Code

    2-3  韩信点兵(hanxin)

    相传寒心才智过人,从不直接清点自己军队的人数,只要让士兵先后以三人一排、无人一排、七人一排地变化队形,而他 每次只掠过一眼队伍的排尾就知道 总人数了。输入3个非负整数a,b,c,表示每种队形队尾的人数(a<3, b<5, c<7),输出总人数的最小值(或报告无解)。已知总人数不小于10,不超过100.

    样例输入:2 1 6

    样例输出:41

    输入:2 1 3

    输出:No answer

    Code

    2-4  倒三角(triangle)

    输入正整数n <= 20, 输出一个n层的倒三角。例如n=5时输出如下:

    5
    #########
    #######
      #####
       ###
        #

    Code

    2-5  略过

    2-6  调和级数(harmony)略过

    2-7  近似计算

    π/4=1-1/3+1/5-1/7+……,直到最后一项小于10^-6.

    Code

    2-8子序列的和(subsequence)

    输入两个正整数n<m<10^6,输出12/n^2+1/(n+1)^2+…..+1/m^2,保留5位小数。例如n=2, m=4时答案是0.42361;n=65536,m=655360时答案为0.00001.注意本题有陷阱。

    Code

    2-9  分数化小数(decimal)

    输入正整数a,b,c,输出a/b的小数形式,精度到小数点c位。a,b<=10^6,c<=100,例如a=1,b=6,c=4时,应输出 0.1667。

    Code


    /*printf的特殊用法:对于m.n的格式可以用如下方法表示char ch[20];
    printf("%*.*s\n",m,n,ch);前边的*定义的是总的宽度,
    后边的定义的是输出的个数。分别对应外面的参数m和n 。
    这种方法的好处是可以在语句之外对参数m和n赋值,从而控制输出格式。 
    */

    2-10  排列(permutation)

    用1,2,3…,9组成3个三位数abc,def和ghi,每个数字恰好使用一次,要求abc:def:ghi = 1:2:3。输出所有的解。提示:不必太动脑筋。

    被毙了恼怒,网上搜索如下代码,长见识了,好新颖的思维。

    Code
  • 相关阅读:
    memmove 的实现
    [转]SGI STL 红黑树(Red-Black Tree)源代码分析
    [转]让我看了很有感触
    [转]C++ list 类学习笔记
    [转]码农自白:这样成为谷歌工程师
    [转]Traits 编程技法+模板偏特化+template参数推导+内嵌型别编程技巧
    泛型指针,原生指针和智能指针
    [转]C++基本功和 Design Pattern系列 ctor & dtor
    python+opencv滤波操作
    python+opencv阈值
  • 原文地址:https://www.cnblogs.com/sanghai/p/2824022.html
Copyright © 2020-2023  润新知