hdu1998
来源:互联网 发布:英国高中帅哥知乎 编辑:程序博客网 时间:2024/06/14 10:13
/*
分析:
水题,就是发现一个规律:
以每行l=n/2为中心,向两边延伸:向左下角就减1、向右上角就加1。而需要向左下角
进行的数量是随着行号递增的,一次增加1,初始为0。
注意left_temp是从-1开始的,因为我的代码在全图处理的时候,将l=n/2处的数据也处理了
一下。但是写代码的时候忘了,还是让left_temp从0开始了。以后写代码的时候,如果哪点儿用
了和平常不一样的方法,记录一下下,省的前面考虑了、后面给忘了(这种错误犯了好多次了
*/
#include"stdio.h"
#include"string.h"
int main()
{
int T;
int n;
int num[19][19];
int k,i,l;
int left;
int temp;
int left_temp;
scanf("%d",&T);
while(T--)
{
memset(num,0,sizeof(num));
scanf("%d",&n);
for(i=0;i<n;i++)
num[i][n/2]=1+i*(n+1);
for(k=left=0;k<n;k++,left++)
{
//处理右上角
temp=num[k][n/2];
for(left_temp=-1,i=k,l=n/2;left_temp<n-1-left;i--,l++,left_temp++)
{
if(i<0)
i=n-1;
if(l>=n)
l=0;
num[i][l]=temp;
temp++;
}
//处理左下角
temp=num[k][n/2];
for(left_temp=-1,i=k,l=n/2;left_temp<left;i++,l--,left_temp++)
{
if(i>=n)
i=0;
if(l<0)
l=n-1;
num[i][l]=temp;
temp--;
}
}
for(i=0;i<n;i++)
{
for(l=0;l<n;l++)
printf("%4d",num[i][l]);
printf("\n");
}
}
return 0;
}
分析:
水题,就是发现一个规律:
以每行l=n/2为中心,向两边延伸:向左下角就减1、向右上角就加1。而需要向左下角
进行的数量是随着行号递增的,一次增加1,初始为0。
注意left_temp是从-1开始的,因为我的代码在全图处理的时候,将l=n/2处的数据也处理了
一下。但是写代码的时候忘了,还是让left_temp从0开始了。以后写代码的时候,如果哪点儿用
了和平常不一样的方法,记录一下下,省的前面考虑了、后面给忘了(这种错误犯了好多次了
- -III)。
还是细节决定成败吧。
2012-04-11*/
#include"stdio.h"
#include"string.h"
int main()
{
int T;
int n;
int num[19][19];
int k,i,l;
int left;
int temp;
int left_temp;
scanf("%d",&T);
while(T--)
{
memset(num,0,sizeof(num));
scanf("%d",&n);
for(i=0;i<n;i++)
num[i][n/2]=1+i*(n+1);
for(k=left=0;k<n;k++,left++)
{
//处理右上角
temp=num[k][n/2];
for(left_temp=-1,i=k,l=n/2;left_temp<n-1-left;i--,l++,left_temp++)
{
if(i<0)
i=n-1;
if(l>=n)
l=0;
num[i][l]=temp;
temp++;
}
//处理左下角
temp=num[k][n/2];
for(left_temp=-1,i=k,l=n/2;left_temp<left;i++,l--,left_temp++)
{
if(i>=n)
i=0;
if(l<0)
l=n-1;
num[i][l]=temp;
temp--;
}
}
for(i=0;i<n;i++)
{
for(l=0;l<n;l++)
printf("%4d",num[i][l]);
printf("\n");
}
}
return 0;
}
- hdu1998
- hdu1998奇数阶魔方
- HDU1998 奇数阶魔方
- hdu1998&杭电oj_1998(奇阶魔方数)
- hdu1998 奇数阶魔法 (数组填数)
- HDU1998奇数阶魔方(连续摆数法(也称暹罗法)构造)
- 有关对耗时很大循环进行并行化优化的探讨之三:并行线程越多运行就会越快吗?
- db2 JDBC 连接
- unsigned char 数据类型的赋值
- 第八周实验报告(2)
- C++ 虚函数表解析
- hdu1998
- Oracle EBS Related Links
- 谈谈小城市程序员的迷茫和坚持
- 迷茫
- C#使用SqlDataAdapter.Update更新数据库
- 关于SAP【声闻】
- [转]sql server将表中的数据导出为 insert的sql语句
- MySQL忘记root密码怎么办?
- GBK,BIG5等字符集编码范围的具体说明