魔方问题源代码(魔方世界代码怎么用)
admin 发布:2022-12-19 21:53 142
今天给各位分享魔方问题源代码的知识,其中也会对魔方世界代码怎么用进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
求魔方的算法 我指的是计算机编程算法 最好有C++ 或C#的源代码
具体做法:
方法一;
/*此程序使我按照上面介绍的魔方阵的规律编写的,不过只能求奇数魔方阵,经过测试可以算到508阶*/
#define N 7
#includestdio.h
void main()
{
int a[N][N],i,j,k;
for(i=0;iN;i++) /*先处理第一行*/
for(j=0;jN;j++)
{
a[i][j]=0; /*先令所有元素都为0*/
}
j=(N-1)/2; /*判断j的位置*/
a[0][j]=1; /*将1放在第一行中间一列*/
for(k=2;k=N*N;k++) /*再从2开始处理*/
{
i=i-1; /*存放的行比前一个数的行数减1*/
j=j+1; /*存放的列比前一个数的列数加1*/
if((i0)(j==N)) /*前一个数是第一行第N列时,把下一个数放在上一个数的下面*/
{
i=i+2;
j=j-1;
}
else
{
if(i0) /*当行数减到第一行,返回到最后一行*/
i=N-1;
if(jN-1) /*当列数加到最后一行,返回到第一行*/
j=0;
}
if(a[i][j]==0) /*如果该元素为0,继续执行程序*/
a[i][j]=k;
else /*如果该元素不为0,就说明要填的数的位置已经被占,则该数放在上一个数的下面*/
{
i=i+2;
j=j-1;
a[i][j]=k;
}
}
for(i=0;iN;i++) /*输出数组*/
{
for(j=0;jN;j++)
printf("%5d",a[i][j]);
printf("\n\n");
}
}
方法二:
/*这个是网友qfyzy为帮助我找错而提供的,可以算到99阶*/
#define N 7
#includestdio.h
void main()
{
int a[N][N]={0},i=0,j,k; /*先令所有元素都为0*/
j=(N-1)/2;
i=0;
for(k=1;k=N*N;) /*开始处理*/
{
if((i0)(j==N)) /*前一个数是第一行第N列时,把下一个数放在上一个数的下面*/
{
i=i+2;
j=j-1;
}
else if(i0) /*当行数减到第一行,返回到最后一行*/
i=N-1;
else if(jN-1) /*当列数加到最后一行,返回到第一行*/
j=0;
else if(!a[i][j]){ /*如果该元素为0,继续执行程序*/
a[i][j]=k++;
i=i-1;
j=j+1;
}
else /*如果该元素不为0,就说明要填的数的位置已经被占,则该数放在上一个数的下面*/
{
i=i+2;
j=j-1;
}
}
for(i=0;iN;i++) /*输出数组*/
{
for(j=0;jN;j++)
printf("%5d",a[i][j]);
printf("\n\n");
}
}
求大神!!用matlab编写 魔方阵的函数 ,或者matlab中magic函数的源代码
magic()魔方阵的函数 。代码见附件。
在命令窗口下,输入
M = magic(5) %5阶魔方阵
M =
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
关于C语言编奇数阶魔方阵的问题
改动处
L10:j=(n/2)+1; n的中间元素是(n/2)+1,但是在数组当中的位置应该是(n/2) //别忘了位置0存第一个
L18,L20 不等号这里不能取等
L32: 输出格式改了一下,为了好看而已
改后程序
#include"stdio.h"
void main()
{
int a[15][15]={0};
int n,i,j,k,p,q;
printf("请输入魔方阵的阶(仅限奇数阶)\n");
scanf("%d",n);
i=0;
j=(n/2);
a[i][j]=1;
for(k=2;k=n*n;k++)
{
p=i;
q=j;
i--;
j++;
if(i0)
i=n-1;
if(jn-1)
j=0;
if(a[i][j]!=0)
{
i=p+1;
j=q;
}
a[i][j]=k;
}
for(i=0;in;i++)
{
for(j=0;jn;j++)
printf(" %3d ",a[i][j]);
printf("\n");
}
}
魔方问题源代码的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于魔方世界代码怎么用、魔方问题源代码的信息别忘了在本站进行查找喔。
版权说明:如非注明,本站文章均为 AH站长 原创,转载请注明出处和附带本文链接;
相关推荐
- 05-19百度浏览器,百度浏览器历史记录怎么恢复
- 05-19怎么免费创建网站,怎么免费创建自己的网站平台
- 05-19现在的网络推广怎么做,网络怎样做推广
- 05-19怎么在百度上发帖推广,免费百度广告怎么投放
- 05-19网站如何优化一个关键词,怎么优化一个网站关键词
- 05-19网络营销方案策划案例,网络营销方案策划案例怎么写
- 05-19网络推广怎么找客户资源,怎么在网络推广
- 05-19怎么做网站,怎么做网站教程视频
- 05-19搜索关键词,word文档怎么搜索关键词
- 05-19怎么免费创建自己的网站,怎么免费创建自己的网站平台
取消回复欢迎 你 发表评论:
- 标签列表
- 最近发表
- 友情链接