ACM-5
来源:互联网 发布:ssr centos 一键 编辑:程序博客网 时间:2024/05/17 00:08
ACM-1998
奇数阶魔方
没有什么具体问题:
知道算法即可
注意:杭电的编译器--要把所有变量的声明都放在最前面
注意输出格式
具体代码如下:
#include <stdio.h>
int main()
{
int num;
int n;
int result[20][20];
int i,j;
int k;
scanf("%d",&num);
while(num--){
scanf("%d",&n);
if(n%2==0)continue;
for(i =0;i<20;i++){
for(j = 0;j<20;j++){
result[i][j] = -1;
}
}
i = 0;
j = n/2;
result[i][j]=1;
/************************************************************************
N为奇数时
(1) 将1放在第一行中间一列;
(2) 从2开始直到n×n为止各数依次按下列规则存放:
向右上方存放
每一个数存放的行比前一个数的行数减1,列数加1
(3) 如果行列范围超出矩阵范围,则回绕。
假如x在第1行,则x+1应放在最下一行即第n行,列数同样为x所在的列数加1;
假如x在第n列,则x+1应放在第一列,行数同样为x所在的行数减1。
(4) 如果按上面规则确定的位置上已有数,或者上一个数是第1行第n列时,
则把下一个数放在上一个数的下面。
************************************************************************/
for(k = 2;k<=n*n;k++){
if(i==0&&j==n-1){
i=i+1;
}else{
int x,y;
x = i;
y = j;
i = i-1;
j = j+1;
if(i<0){
i = n-1;
}
if(j>n-1){
j = 0;
}
if(result[i][j] !=-1){
i = x+1;
j = y;
}
}
result[i][j]=k;
}
for(i=0;i<n;i++){
for(j=0;j<n;j++){
printf("%4d",result[i][j]);
}
printf("\n");
}
}
return 0;
}
- ACM-5
- acm (5)
- ACM算法集5
- ACM内部函数5
- Sdust ACM Weekly #5
- ACM--steps--3.1.5--
- ACM-5个数求最值
- ACM 5个数求最值
- acm 0和5
- ACM
- acm
- ACM
- acm
- ACM!!
- ACM!!
- acm
- ACM
- ACM
- hostapd.conf配置文档
- D-LINK路由器后门漏洞测试方法
- 本市遗体捐献人数 去年全年大幅增加
- struts2动态方法调用
- php:判断php版本是否大于等于某个版本的方法
- ACM-5
- Android Input设备debug技巧
- Java环境配置速记
- 寻找最美家庭 维护网络安全成国际共识 信息化助力中国改革
- HDU 3401 Trade (单调队列优化DP)
- 堆和栈的区别
- java 静态块、非静态块、静态函数、构造函数 执行顺序
- Hibernate乐观锁与悲观锁
- iOS7下修复界面覆盖问题