标签:
做幻方
Time Limit:1000MS Memory
Limit:1024K
5 1 0
11 18 25 2 9 10 12 19 21 3 4 6 13 20 22 23 5 7 14 16 17 24 1 8 15 1
1 #include <iostream> 2 #include <iomanip> 3 using namespace std; 4 int main() 5 { 6 int n; 7 while(cin>>n) 8 { 9 if(n==0) 10 break; 11 int **a=new int*[n]; 12 for(int i=0;i<n;i++) 13 a[i]=new int[n]; 14 for(int i=0;i<n;i++) 15 for(int j=0;j<n;j++) 16 a[i][j]=0; 17 18 int c=1; 19 int j=(n-1)/2; 20 for(int i=n-1;i>=0;i++) 21 { 22 if(c!=1&&(c-1)%n==0) 23 { 24 if(j==0) 25 j=n-1; 26 else j=j-1; 27 if(i==0) 28 i=n-2; 29 else if(i==1) 30 i=n-1; 31 else i=i-2; 32 } 33 a[i][j]=c++; 34 j++; 35 if(c==n*n+1) break; 36 if(i==n-1) 37 i=-1; 38 if(j==n) 39 j=0; 40 } 41 for(int i=0;i<n;i++) 42 { 43 for(int j=0;j<n;j++) 44 cout<<setw(3)<<a[i][j]; 45 cout<<endl; 46 } 47 cout<<endl; 48 } 49 return 0; 50 }
标签:
原文地址:http://www.cnblogs.com/verlen11/p/4179257.html