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-它的平方根中的任意一个数整除即可 ...
随机推荐
- ajax+h5实现文件上传,成功即显示缩略图。
官方参考文档: http://fex.baidu.com/webuploader/ 文件下载地址: https://github.com/fex-team/webuploader/releases/d ...
- d3 bubble源码分析
技术 d3.d3.pack.d3.hierarchy 展示 https://bl.ocks.org/xunhanliu/e0688dc2ae9167c4c7fc264c0aedcdd1 关于怎么使用, ...
- php计算两个时间相差的天数、小时数、分钟数、秒数
$startdate="2011-3-15 11:50:00";//开始时间 $enddate="2012-12-12 12:12:12";//结束时间 $da ...
- Vue2.0组件实现动态搜索引擎(一)
原文链接:https://blog.csdn.net/qwezxc24680/article/details/74550556 从github上看到一个不错的开源项目:https://github.c ...
- IDEA使用GIT 上传到GitHub
1.下载Git https://www.git-scm.com/download/ 2.安装 3.IDEA配置Git(设置Git路径,点击Test),如下代表成功 4.创建仓库 5.add 6.pus ...
- 一 SSH 无密码登陆 & Linux防火墙 & SELinux关闭
如果系统环境崩溃. 调用/usr/bin/vim /etc/profile SHH无密码登陆 所有要做得节点上运行 修改 host name vi /etc/sysconfig/netwo ...
- android 推断是否支持闪光灯
近期在做录制视频功能,在找一些资料时发现 要推断是否支持闪关灯,在这记录下来,怕以后忘记 public static boolean isSupportCameraLedFlash(PackageMa ...
- 分布式文件存储FastDFS(一)初识FastDFS
一.FastDFS简单介绍 FastDFS是一款开源的.分布式文件系统(Distributed File System),由淘宝开发平台部资深架构师余庆开发.作为一个分布式文件系统,它对文件进行管理. ...
- 翻翻git之---炫酷的自己定义翻滚View TagCloudView
转载请注明出处:王亟亟的大牛之路 周一好,又到了每周最困的一天.近期都被啮齿类动物搞的累死,废话不多,今天上一个自己定义的ViewGroup实现一个3D球形集合. 效果图: 效果还不错,能够作为短小文 ...
- PL/SQL Developer怎么连接远程数据库
首先打开电脑,到PL/SQL安装的指定目录 [D:\app\DZL\product\10.2.0\dbhome_1\NETWORK\ADMIN]或者[D:\oracle\product\10.2.0\ ...