| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 531 人关注过本帖
标题:25个数字 的一个算法
只看楼主 加入收藏
fish_
Rank: 1
等 级:新手上路
帖 子:46
专家分:0
注 册:2007-4-25
收藏
 问题点数:0 回复次数:5 
25个数字 的一个算法
大家都做过1-9个数的填入9个方框 让他们横竖斜相等
那25个数呢 程序
搜索更多相关主题的帖子: 算法 数字 
2007-05-12 21:25
aipb2007
Rank: 8Rank: 8
来 自:CQU
等 级:贵宾
威 望:40
帖 子:2879
专家分:7
注 册:2007-3-18
收藏
得分:0 

道理不是一样的?只要是基数就可以,那个叫做“Magic Square”。

算法是这样的,从1开始,左斜上2,有数了就往下。……继续……


呵呵,不知道有没有记错哦!


Fight  to win  or  die...
2007-05-12 22:31
kisscjy
Rank: 1
等 级:新手上路
帖 子:217
专家分:0
注 册:2007-4-9
收藏
得分:0 
BZ,我想问一下如果用穷举法来做的话~~~

怎么用穷举法给数组赋值呢??

请发段代码看看~~~不胜感激~~

每当我一晚写下70,80个程序时,你还真以为,这都是我一个人干的.....不过说真的,其实都是抄书的~~ ^@^
2007-05-12 23:09
kisscjy
Rank: 1
等 级:新手上路
帖 子:217
专家分:0
注 册:2007-4-9
收藏
得分:0 

从网上抄下来给楼主的~~~

#include<iostream>
#include<iomanip>
using namespace std;
void main()
{
cout<<"Enter the size of the magic square :\n";
int n;
cin>>n;
n=n/2*2+1;
cout<<"the size is "<<n<<endl;
int members=n*n;
int *foo=new int[members]; //设置动态一维叔祖
int row=0,col=(n)/2;

for(int i=0;i!=members;i++)
{
foo[row*n+col]=i+1;
row--;
col++;

if(i%n==n-1)
{
row+=2;
col--;
}
if(row<0)row+=n;
if(col==n)col=0;
}

for(i=0;i!=members;i++)
{
cout<<setw(5)<<foo[i];
if(i%n==n-1)cout<<endl;
}
delete []foo;
}

奇数阶魔方阵元素的排列有以下规律:
(1)自然数1总是在方阵第一行当中一列上
(2)后续的自然数在当前数的右上方,即行数减1列数加1的位置。若当前数在第一
行但不在最后列,则后续数在最后一行的下一列上;若当前数在最后一列,则后续数
在上一行的第一列
若按照规律(2)得出的位置已被占用,则下一个自然数放在当前数的下一行同列上

如5阶
17 24 1 8 15
23 5 7 14 16
4 6 13 20 22
10 12 19 21 3
11 18 25 2 9


每当我一晚写下70,80个程序时,你还真以为,这都是我一个人干的.....不过说真的,其实都是抄书的~~ ^@^
2007-05-13 11:00
qdzhi212
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2007-5-14
收藏
得分:0 
呵呵

[此贴子已经被作者于2007-5-14 20:12:08编辑过]


2007-05-14 19:54
qdzhi212
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2007-5-14
收藏
得分:0 

偶数但不是4的倍数和4的倍数分别又将如何?看看吧!
n=6:

35 1 6 26 19 24
3 32 7 21 23 25
31 9 2 22 27 20
8 28 33 17 10 15
30 5 34 12 14 16
4 36 29 13 18 11

n=10:

92 99 1 8 15 67 74 51 58 40
98 80 7 14 16 73 55 57 64 41
4 81 88 20 22 54 56 63 70 47
85 87 19 21 3 60 62 69 71 28
86 93 25 2 9 61 68 75 52 34
17 24 76 83 90 42 49 26 33 65
23 5 82 89 91 48 30 32 39 66
79 6 13 95 97 29 31 38 45 72
10 12 94 96 78 35 37 44 46 53
11 18 100 77 84 36 43 50 27 59


n=4:

16 2 3 13
5 11 10 8
9 7 6 12
4 14 15 1

n=8:
64 2 3 61 60 6 7 57
9 55 54 12 13 51 50 16
17 47 46 20 21 43 42 24
40 26 27 37 36 30 31 33
32 34 35 29 28 38 39 25
41 23 22 44 45 19 18 48
49 15 14 52 53 11 10 56
8 58 59 5 4 62 63 1

[此贴子已经被作者于2007-5-14 20:18:44编辑过]

2007-05-14 20:05
快速回复:25个数字 的一个算法
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.038614 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved