CTF编程题-三羊献瑞(实验吧)解题随记
题目如下。解题步骤参考的是https://cloud.tencent.com/developer/news/373865中作者的思路。

1.首先,两个四位数相加等于一个五位数,那么这个五位数的第一位必定是1,也就是“三”=1,。
2.继续分析“祥”+“三”,若是“祥”(8),“三”为1,那么低位必定有进位(才能结果为五位数);若是“祥”(9),假如低位没有进位,则也满足条件,而低位有进位那么“羊”为1,这就不符合题目要求(“三”=1,不同的汉字代表不同的数字)。所以总结下来,“祥”可能为9或8,满足所有条件的情况下,“羊”必定为0。
3.接下来可以看到“瑞”+“羊”并没有等于“瑞”,而是等于另外一个数字“生”。因为“羊”=0,“瑞”在2~9范围内,两者相加只可能等于“瑞”,而此处不是,则低位必然有进位。接下来可以知道“瑞”+“羊”+1不可能等于10,即“生”=0(与“羊”=0冲突)。那么“瑞”+“羊”并没有加进位,结合上一步的分析【若是“祥”(9),假如低位没有进位,则也满足条件】得知“祥”=9。
4.“生”-“瑞”=1,“生”最大为7,因为9被“祥”占用。那么“生”最小为3。
综上,瑞(2~7),生(3~8),“辉”、“献”、“气”的范围均为2~8。
接下来就是编程了,代码同样也是参考作者的。
#encoding:utf-8
# 祥9 瑞d[2] 生d[1] 辉d[0]
# + 三1 羊0 献d[4] 瑞d[2]
#------------------------------
# 三1 羊0 生d[1] 瑞d[2] 气d[3]
import random
#随机0-9的数组
def shuzu():
b1 = []
while True:
j=random.randint(2,8)
if j not in b1:
b1.append(j)
if(b1.__len__()==5):
break
return b1
#
def shuzu1():
while True:
b2=shuzu()
#"生"-"瑞"=1,瑞(2-7),生(3-8)
if(b2[1]-b2[2]==1 and b2[1]!=2 and b2[2]!=8):
break
print(b2)
return b2
while True:
#d生成随机的数组
d=shuzu1()
# 祥c 瑞d[2] 生d[1] 辉d[0]
xrsh=9000+d[2]*100+d[1]*10+d[0]
#三a 羊b 献d[4] 瑞d[2]
syxr=1000+d[4]*10+d[2]
#三a 羊b生d[1] 瑞d[2] 气d[3]
sxsrq=10000+d[1]*100+d[2]*10+d[3]
#如果等式成立,就终止循环,输出数字
if(sxsrq==xrsh+syxr):
print("________________")
print(" 祥瑞生辉:",xrsh)
print("+ 三羊献瑞:",syxr)
print("三羊生瑞气:",sxsrq)
break
代码运行时间也是随机的。

CTF编程题-三羊献瑞(实验吧)解题随记的更多相关文章
- 2015年蓝桥杯省赛B组第3题--三羊献瑞
三羊献瑞 观察下面的加法算式: 祥 瑞 生 辉 + 三 羊 献 瑞 ------------------- 三 羊 生 瑞 气 (如果有对齐问题,可以参看[图1.jpg]) 其中,相同的 ...
- 三羊献瑞|2015年蓝桥杯B组题解析第三题-fishers
三羊献瑞 观察下面的加法算式: 祥 瑞 生 辉 三 羊 献 瑞 三 羊 生 瑞 气 (如果有对齐问题,可以参看[图1.jpg]) 其中,相同的汉字代表相同的数字,不同的汉字代表不同的数字. 请你填写& ...
- 三羊献瑞——第六届蓝桥杯C语言B组(省赛)第三题
原创 三羊献瑞 观察下面的加法算式: 祥 瑞 生 辉 + 三 羊 献 瑞 ------------------- 三 羊 生 瑞 气 (如果有对齐问题,可以参看[图1.jpg]) 其中,相同的汉字代表 ...
- 第六届蓝桥杯省赛 java三羊献瑞
将文字看作一个个变量.根据一开始确定的文字的值进行暴力循环. 三羊献瑞 观察下面的加法算式: 祥 瑞 生 辉 + 三 羊 献 瑞------------------- 三 羊 生 瑞 气 (如果有对齐 ...
- 三羊献瑞:dfs / next_permutation()
三羊献瑞 观察下面的加法算式: 祥 瑞 生 辉 + 三 羊 献 瑞------------------- 三 羊 生 瑞 气 (如果有对齐问题,可以参看[图1.jpg]) 其中,相同的汉字代 ...
- 三羊献瑞:next_permutation()
三羊献瑞 观察下面的加法算式: 祥 瑞 生 辉 + 三 羊 献 瑞------------------- 三 羊 生 瑞 气 (如果有对齐问题,可以参看[图1.jpg]) 其中,相同的汉字代 ...
- java 三羊献瑞
三羊献瑞 观察下面的加法算式: 其中,相同的汉字代表相同的数字,不同的汉字代表不同的数字. 请你填写"三羊献瑞"所代表的4位数字(答案唯一),不要填写任何多余内容. public ...
- java实现第六届蓝桥杯三羊献瑞
三羊献瑞 题目描述 观察下面的加法算式: 祥 瑞 生 辉 三 羊 献 瑞 三 羊 生 瑞 气 (如果有对齐问题,可以参看[图1.jpg]) 其中,相同的汉字代表相同的数字,不同的汉字代表不同的数字. ...
- Python和Java编程题(三)
1.题目:判断101到200之间有多少个素数,并输出所有素数 题目分析:判断一个数是否为素数,只需要判断这个数有没有除1和它自身外的其他因数.因此,判断这个数能否被2-它的平方根中的任意一个数整除即可 ...
随机推荐
- JS文字特效:彩色滚动变幻效果,只适合少量的文字。(过多对页面有影响)
JS代码如下: 代码具体是在哪里的我不知道但是我的有道云上有.如有哪位朋友知道,还望联系下,添加出处. <div id="chakhsu"></div> & ...
- time---统计命令所花费的总时间
time命令用于统计给定命令所花费的总时间. 语法 time(参数) 参数 指令:指定需要运行的额指令及其参数. 实例 当测试一个程序或比较不同算法时,执行时间是非常重要的,一个好的算法应该是用时最短 ...
- caioj 1081 动态规划入门(非常规DP5:观光游览)
这道题和前面的分组的题有点像 就是枚举最后一组的长度. 然后组数可以在第一层循环也可以在第二层循环 我自己的话就统一一下在第一层循环吧 然后这道题题意我一直没理解清楚,浪费了很多时间,写复杂了 同时初 ...
- Linux学习之socket编程(一)
socket编程 socket的概念: 在TCP/IP协议中,“IP地址+TCP或UDP端口号”唯一标识网络通讯中的一个进程,“IP地址+端口号”就称为socket. 在TCP协议中,建立连接的两个进 ...
- c++开源爬虫-Larbin简单介绍
原文地址:http://leihuang.net/2014/06/16/Larbin-Introduction/ 由于近期学校实训.做的是一个搜索相关的项目,而且是c++的一个项目.所以就想到了lar ...
- 多校第十场1009 CRB and String题解
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5414 题意:给你两个字符串s和t,你能够在字符串s中随意选一个字符c,在该字符c后插入一个字符d(d! ...
- Scala具体解释---------Scala是什么?可伸展的语言!
Scala是什么 Scala语言的名称来自于"可伸展的语言". 之所以这样命名,是由于他被设计成随着使用者的需求而成长.你能够把Scala应用在非常大范围的编程任务上.从写个小脚本 ...
- 找出一堆数中最小的前K个数
描写叙述: 给定一个整数数组.让你从该数组中找出最小的K个数 思路: 最简洁粗暴的方法就是将该数组进行排序,然后取最前面的K个数就可以. 可是,本题要求的仅仅是求出最小的k个数就可以,用排序能够但显然 ...
- JavaWeb与JSP初识
JavaWeb执行过程 目录结构 Web程序部署在Tomcat的/webapps下面. 一个webapps文件夹可以部署多个不同的Web应用,webapps/web1,webapps/web2. 如果 ...
- Controller接口控制器
1.Controller简介 Controller控制器,是MVC中的部分C,为什么是部分呢?因为此处的控制器主要负责功能处理部分: 1.收集.验证请求参数并绑定到命令对象: 2.将命令对象交给业务对 ...