zoukankan      html  css  js  c++  java
  • 【蓝桥杯训练】第二天1259、1260

    1259

    [蓝桥杯2015初赛]三羊献瑞

    观察下面的加法算式:

    其中,相同的汉字代表相同的数字,不同的汉字代表不同的数字。
    请你填写“三羊献瑞”所代表的4位数字(答案唯一),不要填写任何多余内容。
    输出
    请你填写“三羊献瑞”所代表的4位数字(答案唯一),不要填写任何多余内容。

    注意

    答案唯一,相同的汉字代表相同的数字,不同的汉字代表不同的数字

    算法

    下面说的进位都是低位来的
    zh = ['祥', '瑞', '生', '辉', '三', '羊', '献', '气']

    1. 首先想到这个些汉字代表的是否是0-9之间的数字
    2. 总计8个汉字,代表8个不同的数字
    3. 可以确定“三” = 1,因为两个数字相加最大18,再加个进位,也就19;
    4. 接着,可知其他都非1,“祥”+“三” 有进位,且“羊”!=1;
      4.1 “祥” = 9, 无进位 or “祥” = 8, 有进位,都会使得 “羊” = 0
      4.2 假设“祥” = 9, 无进位;“瑞”!= “生” ,必然有低位进位:
      “生” = “瑞” + 1,那么“瑞” = “生” - 1,因为是加法,且要向前进位:
      所以“献” = 9,与“祥” = 9矛盾,只能是“献” = 8,有低位进位;
      由于个位“辉” + “瑞” > 10,且只有765432可选,最终可以推出:
      '祥' = 9, '瑞' = 5, '生' = 6, '辉' = 7, '三' = 1, '羊' = 0, '献' = 8, '气' = 2

    最终可得:“三羊献瑞”为:1085

    题解

    print('1085')
    



    1260

    [蓝桥杯2015初赛]加法变乘法

    我们都知道:1+2+3+ ... + 49 = 1225
    现在要求你把其中两个不相邻的加号变成乘号,使得结果为2015
    比如:
    1+2+3+...+1011+12+...+2728+29+...+49 = 2015 就是符合要求的答案。
    请你寻找另外一个可能的答案,并把位置靠前的那个乘号左边的数字提交。
    (对于示例,就是提交10)。
    输出
    注意:需要你提交的是一个整数,不要填写任何多余的内容。

    注意

    交换的 两个 、不相邻 的加号。

    算法

    枚举出使得改变符号后数值增加790

    题解

    结果:print('16')

    for i in range(1,46+1):
        for j in range(i+2,48+1):
            temp = i*(i+1)+j*(j+1)-2*i-1-2*j-1
            if temp == 790:
                print(i,j)
    

    输出:
    10 27
    16 24

  • 相关阅读:
    web标准化布局
    最全前端资源汇集
    SVN使用教程
    FullPage.js中文帮助文档API
    如何选字体(font-family)
    网站禁止复制类型的属性
    Web前端学习方向
    div 命名规范! (野路子出来的好好看看)
    浏览器兼容处理
    JSONP 跨域问题
  • 原文地址:https://www.cnblogs.com/yanshanbei/p/12210760.html
Copyright © 2011-2022 走看看