XiaoHui.Net 笑汇程序员论坛
→ C/C++ 讨论区
请大家帮忙给写个算法
|
请大家帮忙给写个算法
有一个五行五列的表格,从1填到25,每行加起来等于65,每列加起来等于65.对角线加起来等于65.请大家给写个算法,把这个表格给填满.谢谢啦! |
|
小学做的题……就是个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;
} |
|
int **a = new int*[5];
就是我想问下这句这样定义是什么意思呢?
这样的定义有何作用呢?
我这个有点不懂哦,所以后面我就看得有点不知所然。
我是新手哦!!!
谢谢高人指点啊!! |
|