魔方矩阵 C++实现

原创 2015年11月19日 18:02:55
书上的一道题目,魔方矩阵,一行的元素相加与一列的元素相加的和一样大,对角线也一样大
一开始不会写,百度也没找到。。后来自己慢慢单步调试写出来了。。。
                                   **仅供有需要的人以参考,如有错误请纠正我**
#include<iostream>
using namespace std;

int main()
{
    const int NUM = 5;
    if (NUM % 2 == 0)
    {
        cerr << "不可以为偶数!" << endl;
        exit(EXIT_FAILURE);
    }

    int x = 0, 
        y = NUM / 2;
    int square[NUM][NUM] = { 0 };
    square[x][y] = 1;

    for (int i = 2; i <= NUM * NUM; i++)
    {
        x--;
        y++;
        if (x < 0 && y >= NUM)
        {
            x += 2;
            y -= 1;
        }
        if (x < 0)
            x = NUM - 1;
        if (y >= NUM)
            y = 0;
        while (square[x][y] != 0)
        {
            x = x + 2;
            y = y - 1;
            if (x >= NUM)
                x = 0;
            if (y < 0)
                y = NUM - 1;
        }
        square[x][y] = i;
    }

    for (int i = 0; i < NUM; i++)
    {
        for (int j = 0; j < NUM; j++)
            cout << square[i][j] << "\t";
        cout << endl;
    }
    return 0;
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

C/C++小程序学习:n*n魔方矩阵实现每行、每列、每一对角线上的元素之和相等

用一个程序实现n*n魔方矩阵中,每一行、每一列、每一对角线上的元素之和相等。 矩阵规律: 本程序只适合基数,解释如下:  N 为奇数时,此题中N设为5 (1) 将1放在第一行中间一列;...

C++ 三阶魔方还原

转载请注明出处,谢谢 http://blog.csdn.net/ACM_cxlove?viewmode=contents by—cxlove 三阶魔方还原。因为只搜5层,所以使用...

三阶魔方还原程序心得

第一次写技术性的博客啊,本人菜鸟,欢迎大神前来点拨呀~ 这是我最近做的一个三阶魔方还原的小程序。 用的环境是VC++6.0,其中也大量运用了easyx库进行图形绘制等。 这次写程序深刻感受到了算法是程...

2013长沙网络赛 G Goldbach (FFT)

转载请注明出处,谢谢http://blog.csdn.net/ACM_cxlove?viewmode=contents    by---cxlove 太逗了。。。比赛的时候,误以为素数会很多。。。。...

魔方矩阵的实现

输出模魔方矩阵

Constraints Time Limit: 1 secs, Memory Limit: 32 MB Description If you have good observations s...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)