2017全国大学生信息安全竞赛Reverse 填数游戏

参考的writeup在这:

https://www.ichunqiu.com/writeup/detail/517


使用的代码为py:

'''
f = open('data.txt')

num = 0
a = []
for line in f:
	print line,line[1]
	if line[1] == '0':
		a.append('?')
	else:
		a.append(line[1])
print a
for i in xrange(0,len(a)):
	print a[i],
	if i % 9 == 8:
		print
'''

f1 = open('C:\\input.txt')
f2 = open('C:\\output.txt')
num = 0
str1 = ''
str2 = ''
ans = ''
for line in f1:
	str1 += line
for line in f2:
	str2 += line
for i in xrange(0,len(str1)):
	if str1[i] == '?':
		ans += str2[i]
	elif str1[i]>='1' and str1[i]<='9':
		ans += '0'
print ans

input和output的两个数独矩阵:

? ? 7 5 ? ? ? 6 ?
? 2 ? ? 1 ? ? ? 7
9 ? ? ? 3 ? 4 ? ?
2 ? 1 ? ? ? ? ? ?
? 3 ? 1 ? ? ? ? 5
? ? ? ? ? ? 7 1 ?
4 ? ? ? ? 8 2 ? ?
? ? 5 9 ? ? ? 8 ?
? 8 ? ? ? 1 ? ? 3


3 4 7 5 8 9 1 6 2
5 2 8 4 1 6 9 3 7
9 1 6 2 3 7 4 5 8
2 6 1 8 7 5 3 4 9
7 3 9 1 6 4 8 2 5
8 5 4 3 9 2 7 1 6
4 9 3 6 5 8 2 7 1
1 7 5 9 2 3 6 8 4
6 8 2 7 4 1 5 9 3



  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值