- 论坛徽章:
- 0
|
- # coding:utf-8
- def makehf(n):
- hf=[]
- level=n
- index=range(0,level)
- tmp=[]
- for i in index:
- hf.append([])
- for j in index:
- hf[i].append(0)
- count=1
- i=0
- j=level/2
- hf[i][j]=1
- while count<level*level:
- if i-1 in index:
- if j+1 in index:
- i=i-1
- j=j+1
- if hf[i][j]<>0:
- i=i+2
- j=j-1
- else:
- i=i-1
- j=0
- elif j+1 in index:
- i=level-1
- j=j+1
- else:
- i=i+1
- count+=1
- hf[i][j]=count
- for i in index:
- sum=0
- sum1=0
- for j in index:
- sum=sum+hf[i][j]
- sum1=sum1+hf[j][i]
- if sum<>sum1:
- print 'Error'
- break
- print '%d阶幻方.各直线和为%d'%(level,sum)
- print '*'*80
- for i in index:
- for j in index:
- print '%5d'%hf[i][j],
- print
- print '*'*80
- for x in range(3,15,2):
- makehf(x)
-
复制代码 |
|