问题描述
给1-99个数,摆放成3*3的矩阵,要求每横排,每竖排,对角线上3个数字相加均为15有谁会?
解决方案
解决方案二:
四二为肩六八为足左三右七载九履一
解决方案三:
我需要算法,谢谢
解决方案四:
说说我自己的想法:1.找出所有三数相加等于15的组合2.让重复3次的数为3*3矩阵的4个角3.让重复2次的数为3*3矩阵的中间的那个点4.让只出现一次的数为3*3矩阵形成的正方形各边的中点
解决方案五:
1.找出所有三数相加等于15的组合==================排除重复的数字比如456654只算一个组合我没算过.心里猜测这样的组合应该有6个
解决方案六:
这个想法是好的,实现比较困难
解决方案七:
heatol()
解决方案八:
要么就P99(不会打上下..字)的排列组合循环喽.
解决方案:
九宫问题5为中因为6+9=15也就是6-9都不可以放在中1,2,8,9之类的不能共线1+2+9<15
解决方案:
有没有详细点算法,最好有代码
解决方案:
奇数幻方有数学推导.google之
解决方案:
privateconstintN=3;//5,7...//奇数privatevoidbutton1_Click(objectsender,EventArgse){int[,]square=newint[N,N];inti=-1;intj=(N+1)/2-1;for(intkey=1;key<=N*N;key++){if((key%N)==1)i++;else{i--;j++;}if(i<0)i=N-1;if(j>=N)j=0;square[i,j]=key;}for(i=0;i<N;i++){for(j=0;j<N;j++)Console.Write("{0}",square[i,j]);Console.WriteLine();}}
解决方案:
呵,用最笨的办法,先写出1-9所有的排列。然后再计算出所有符合要求的排列。。。一共是618753294,816357492,672159834,834159672276951438,438951276,294753618,492357816
解决方案:
Main(string[]args){constintN=5;int[,]data=newint[N,N];inti=0;intj=N/2;for(intk=0;k<N*N;k++){if(data[i,j]>=k||data[i,j]==0){data[i,j]=k+1;}else{i=Mod(i+2,N);j=Mod(j-1,N);data[i,j]=k+1;}i=Mod(i-1,N);j=Mod(j+1,N);}for(i=0;i<N;i++){for(j=0;j<N;j++)Console.Write("{0}",data[i,j]);Console.WriteLine();}}staticintMod(inti,intj){if(i>=0)i=i%j;elsei=(i+j)%j;returni;}算法http://210.77.218.4:8080/RESOURCE/XX/XXSX/SXBL/BL000071/11936_SR.HTM
解决方案:
zswang(伴水清清)(专家门诊清洁工)能不能给讲一下算法?没看出来
解决方案:
四二为肩六八为足左三右七载九履一-----------------==================这不是风水口诀吗。。。。。