XiaoHui.Net 笑汇程序员论坛C/C++ 讨论区

   请大家帮忙给写个算法


页: [1]

龙主人2006-12-26 14:27
请大家帮忙给写个算法

有一个五行五列的表格,从1填到25,每行加起来等于65,每列加起来等于65.对角线加起来等于65.请大家给写个算法,把这个表格给填满.谢谢啦!


linyue2006-12-29 08:28
小学做的题……就是个9宫格问题,已经有现成的数学算法了
3        21        19        12        10
22        20        13        6        4
16        14        7        5        23
15        8        1        24        17
9        2        25        18        11

#include <iostream>
using namespace std;


void fillarr(int **arr)
{
        int row = 3;
        int col = 2;
        //initial
        for (int i = 0; i < 5; i++)
                for (int j = 0; j < 5; j++)
                        arr[i][j] = 0;
        //compute
        for (int i = 1; i <= 25; i++)
        {
                arr[row][col] = i;
                if (arr[(row + 1) % 5][(col + 4) % 5] == 0)
                {
                        row = (row + 1) % 5;
                        col = (col + 4) % 5;
                }
                else row = (row + 4) % 5;
        }
}

void printarr(int **arr)
{
        for (int i = 0; i < 5; i++)
        {
                for (int j = 0; j < 5; j++)
                {
                        if (arr[i][j] < 10) cout <<arr[i][j]<<"  ";
                        else cout <<arr[i][j]<<" ";
                }
                cout <<endl;
        }
}

int main()
{
        int **a = new int*[5];
        for (int i = 0; i < 5; i++)
                a[i] = new int[5];
        fillarr(a);
        printarr(a);
        for (int i = 0; i < 5; i++)
                delete a[i];
        delete a;
}

zmlmf20082007-1-3 06:57
int **a = new int*[5];   
就是我想问下这句这样定义是什么意思呢?
这样的定义有何作用呢?
我这个有点不懂哦,所以后面我就看得有点不知所然。
我是新手哦!!!
谢谢高人指点啊!!


查看完整版本: 请大家帮忙给写个算法