zoukankan      html  css  js  c++  java
  • 【蓝桥杯训练】第四天1294、1297

    1294

    [蓝桥杯2016初赛]平方怪圈

    如果把一个正整数的每一位都平方后再求和,得到一个新的正整数。对新产生的正整数再做同样的处理。
    如此一来,你会发现,不管开始取的是什么数字,最终如果不是落入1,就是落入同一个循环圈。
    请写出这个循环圈中最大的那个数字。
    输出
    输出答案即可

    注意

    签到题

    算法

    笔算可得结果145

    题解

    结果:145

    1297

    [蓝桥杯2016初赛]搭积木

    小明最近喜欢搭数字积木,一共有10块积木,每个积木上有一个数字,0~9。
    搭积木规则:每个积木放到其它两个积木的上面,并且一定比下面的两个积木数字小。
    最后搭成4层的金字塔形,必须用完所有的积木
    下面是两种合格的搭法:

    请你计算这样的搭法一共有多少种?
    输出
    一个整数表示答案

    注意

    排列题

    算法

    1. 必定0在第一层,1在第二层
    2. 为减少枚举次数,分1在左,或1在右
    3. 把其拉直按从左到右,从上到下

    题解

    from itertools import permutations
    def f(data):
        SF = 1
        for i in range(6):
            if i == 0:continue
            elif i == 2 or i ==1:
                if data[i]<data[i+2] and data[i]<data[i+3]:
                    continue
                else:
                    SF = 0
                    break
            else: 
                if data[i]<data[i+3] and data[i]<data[i+4]:
                    continue
                else:
                    SF = 0
                    break
        if SF:     
            return True
    res = 0
    # 1在第二层左边
    a = [i for i in range(10)]
    b = [i for i in range(10)]
    print(b)
    for i in permutations([2,3,4,5,6,7,8,9]):
        b[2:] = i
        if f(b):
            res += 1
    # 1在第二层右边
    a[1],a[2] = a[2],a[1]
    print(a)
    for i in permutations([2,3,4,5,6,7,8,9]):
        a[1] = i[0]
        a[3:] = i[1:]
        if f(a):
            res += 1
            if res == 501 or res == 101:
                print('/',a)
    print(res)
    
  • 相关阅读:
    【亲测有效】安装npm慢的解决方案
    设置redis开机自动启动
    win10开启redis失败解决方案
    ajax跨域问题
    python进程不能并行的原因,进程阻塞
    python多进程并行代码
    python多进程间通信
    orangepi自启动打开一个终端并且运行脚本
    lxterminal命令打开新窗口并执行python脚本
    orangepi获取cpu温度
  • 原文地址:https://www.cnblogs.com/yanshanbei/p/12229214.html
Copyright © 2011-2022 走看看