zoukankan      html  css  js  c++  java
  • 解题报告1005 幻方

    做幻方
    Time Limit:1000MS  Memory Limit:1024K

    Description:

    Apple最近迷上了做幻方,Apple还是个中高手,只要你说个奇数N,他就能把N*N的幻方做出来。其实你可以比他做得更好的。Apple总是画得很乱,而你可以利用程序排得很整齐^_^ 幻方的要求:每一行,每一列,还有两条斜线上数字的和都相等。

    Input:

    每行有一个数N(0< N < 30),输入0结束。

    Output:

    输入一个奇数,输出一个幻方,每个数占3格,顺序参照样板输出,输出完以后加一个回车。

    Sample Input:

    5
    1
    0
    
    

    Sample Output:

     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

    Hint:

    如果不会做幻方的请从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 }
    View Code
  • 相关阅读:
    CSS3 鲜为人知的属性-webkit-tap-highlight-color的理解
    14 个折磨人的 JavaScript 面试题
    JavaScript 开发的45个技巧2
    JavaScript 开发的45个技巧
    JavaScript 中的 this !
    JavaScript里的循环方法:forEach,for-in,for-of
    JS类型判断typeof PK {}.toString.call(obj)
    Object.prototype.toString()
    MinGW gcc 生成动态链接库 dll 的一些问题汇总 (补充)
    Selenium之偷懒教程
  • 原文地址:https://www.cnblogs.com/verlen11/p/4179257.html
Copyright © 2011-2022 走看看