【上机训练】枚举

  1. abc

    题目描述:

    设a、b、c均是0到9之间的数字,abc,bcc是两个三位数,且有abc+bcc=532

    输入

    题目没有任何输入

    输出

    请输出所有满足题目条件的a,b,c的值
    a,b,c之间用空格隔开,每个输出各占一行

    样例输入

    样例输出

    解法思路

    将a、b、c三个数字枚举 0~9
    a:O(n)
    b:O(n)
    c:O(n)
    故时间复杂度为O(n3)可以处理的数据量为500 > 题目中的10
    所以可以使用枚举法解决

  2. 反序数

    题目描述:

    设N是一个4位数,它的九倍恰好使其反序数(如1234的反序数是4321),求N的值。

    输入

    题目没有任何输入

    输出

    输出要求的四位数,如果结果有多组,那么每个结果以回车隔开

    样例输入

    样例输出

    解法思路

    将这个四位数枚举
    枚举算法0~9999:O(n)
    求反序数算法:O(1)
    故时间复杂度为O(n),可以处理的数据量为107 > 题目中的104
    所以可以使用枚举法解决
    求反序数: O(1)
    ① 1234%10=4 , 0+4=4
    1234/10=123,4* 10=40
    ② 123%10=3 , 40+3=43
    123/10=12,43* 10=430
    ③ 12%10=2 , 430+2=432
    12/10=1,432* 10=4320
    ④ 1%10=1,4320+1=4321
    1/10=0
    % 与 +是逆操作、/ 与 *是逆操作

  3. 对称平方数

    题目描述:

    打印所有不超过256,其平方具有对称性的数。如2*2 =11、11 * 11= 121

    输入

    题目没有任何输入

    输出

    输出要求的数,如果结果有多组,那么每个结果以回车隔开

    样例输入

    样例输出

    解法思路:

    将这个数枚举所有,判断反序数是否和平方相等
    枚举算法0~256:O(n)
    求反序数算法:O(1)
    故时间复杂度为O(n),可以处理的数据量为107 > 题目中的103
    所以可以使用枚举法解决

猜你喜欢

转载自blog.csdn.net/Qmilumilu/article/details/114458620