我做魔方有问题。幻方是所有行和列的和都相同的数字的平方。
例如:
1 2 14
3 13 1
13 2
我不知道我的代码出了什么问题,但它应该从中读取三个数字magicin.txt文件然后从那里强制平方并将输出写入magicout.txt文件你知道吗
我之所以编写这个代码是因为它在所有练习题中。网站是: http://orac.amt.edu.au/cgi-bin/train/problem.pl?set=aio16int&problemid=902
如果需要进一步的澄清或任何东西,请评论。代码在这里(它有一堆无用的打印和“按回车键退出”语句用于调试):
def Main():
file=open("magicin.txt","r")
magicin=file.read()
file.close()
num1=""
num2=""
num3=0
num4=""
num5=0
num6=0
num7=0
num8=0
num9=0
indices = [i for i, x in enumerate(magicin) if x == " "]
splitSpace2=indices[1]
splitSpace=indices[0]
for x in range(splitSpace):
num1+=magicin[x]
for x in range(splitSpace+1,splitSpace2):
num2+=magicin[x]
for x in range(splitSpace2+1,len(magicin)):
num4+=magicin[x]
num1=int(num1)
num2=int(num2)
num4=int(num4)
for x in range(20):
num3=x
sum=num1+num2+num3
num7=sum-num1
if num7<0:
print("Falied with num7="+str(num7))
else:
for y in range(20):
num5=y
for z in range(20):
num6=z
if num6+num5+num4==sum:
for a in range(20):
num8=a
if num8+num2+num5==sum:
for b in range(20):
num9=b
if num9+num8+num7==sum and num9+num6+num3==sum:
answer=[str(num1),str(num2),str(num3),str(num4),str(num5),str(num6),str(num7),str(num8),str(num9)]
file=open("magicout.txt","w")
file.write(answer[0]+" "+answer[1]+" "+answer[2]+"\n"+answer[3]+" "+answer[4]+" "+answer[5]+"\n"+answer[6]+" "+answer[7]+" "+answer[8])
file.close()
return
else:
print("failed with num9+num8+num7==sum and num9+num6+num3==sum"+" "+str(num9)+" "+str(num8)+" "+str(num7)+" "+str(sum),str(num9),str(num6),str(num3),str(sum))
else:
print("Failed with num8+num2+num5==sum",str(num8),str(num2),str(num5),str(sum))
else:
print("Failed with num6="+str(num6)+" num5="+str(num5),"num4="+str(num4),"sum="+str(sum))
if x==19:
print(num1,num2,num3,num4,num5,num6,num7,num8,num9)
wait=input("")
file=open("magicout.txt","w")
file.write("none")
file.close()
answer=Main()
谢谢
我最近完成了这个问题,它实际上很简单。在普通的幻方中,你不能重复任何数字。但是,AIO问题允许您随时重复数字。因此,出现了一种令人惊讶的对称性。你知道吗
如果我让幻数为
m
,我可以用下面的形式写出我的幻方:因此,您可以用简单的数学创建一个幻方。您只需测试
m
,以便m-(a+c)
和m-(a+b)
中的较大值介于1和20之间。你需要做的就是看看你的平方的中间数是否大于1。所有其他的数字在任何情况下都是有效的。由此,我用python编写了以下代码:我希望这有帮助!你知道吗
相关问题 更多 >
编程相关推荐