
#include<malloc.h>
int N=15
int main()
{
int i,j,k,m,n
int G[N][N]
printf("Input the odd number(number<=15) you want !\n")
scanf("%d",&m)
if((m>0)&&(m%2))
{
printf("Your intput number is %d\n",m)
n=m*m
j=0
k=m/2
for(i=1i<=ni++)
{
G[j][k]=i
if(i%m==0)
if(j==m-1)
j=0
else
j++
else
{
if(j==0)
j=m-1
else
j--
if(k==m-1)
k=0
else
k++
}
}
for(i=0i<mi++)
{
for(j=0j<mj++)
printf("%6d",G[i][j])
printf("\n")
}
}
else
printf("The number you inputed is ERROR!!!")
system("pause")
}
可以接受15以内的任意魔方 你的九宫格按照这个程序输出是这样的:
//2010/10/22 21:17:07 FRI//用c++程序编写:
//在九宫格里填写数字,纵、横、斜(对角)相加=15
//create by jims
#include <iostream>
// +----+----+----+
// |1 |2 | 3 |
// +----+----+----+
// |4 |5 |6 |
// +----+----+----+
// |7 |8 |9 |
// +----+----+----+
// ADS:use emacs table-insert
bool check(int* a,int num)
{
//std::cout<<a[1]<<a[2]<<a[3]<<a[4]<<a[5]<<a[6]<<a[7]<<a[8]<<a[9]<<std::endl
if( (a[1]+ a[2] +a[3] ==15)
&&(a[4] + a[5] + a[6] == 15)
&&(a[7] + a[8] + a[9] == 15)
&&(a[1] + a[4] + a[7] == 15)
&&(a[2] + a[5] + a[8] == 15)
&&(a[3] + a[6] + a[9] == 15)
&&(a[1] + a[5] + a[9] == 15)
&&(a[3] + a[5] + a[7] == 15)
)
{
for( int i = 1i <= 9i++)
{
for( int j = 1j <= 9j++)
{
if( i != j
&& a[i] == a[j])
return false
}
}
return true
}
else
return false
}
int main(int argc, char* argv[])
{
int a[10]
bool find = false
for( a[1] = 1a[1] <= 9a[1]++){
for( a[2] = 1a[2] <= 9a[2]++){
for( a[3] = 1a[3] <= 9a[3]++){
for( a[4] = 1a[4] <= 9a[4]++){
for( a[5] = 1a[5] <= 9a[5]++){
for( a[6] = 1a[6] <= 9a[6]++){
for( a[7] = 1a[7] <= 9a[7]++){
for( a[8] = 1a[8] <= 9a[8]++){
for( a[9] = 1a[9] <= 9a[9]++){
if( check( a,9))
{
find = true
std::cout<<a[1]<<a[2]<<a[3]<<a[4]<<a[5]<<a[6]<<a[7]<<a[8]<<a[9]<<std::endl
goto leble_find
}
}}}}}}}}}
leble_find:
if( find)
{
std::cout<<a[1]<<" "<<a[2]<<" "<<a[3]<<"\n"
std::cout<<a[4]<<" "<<a[5]<<" "<<a[6]<<"\n"
std::cout<<a[7]<<" "<<a[8]<<" "<<a[9]<<"\n"
}
else
std::cout<<"can't find\n"
std::cin.get()
}
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)