合工大 OJ 1332 蛇形阵

Description

蛇形针回字阵:

如3*3:

回字阵:

7 6 5

8 1 4

9 2 3

Input

多组数据:

每一行一个正整数n(n为奇数,<26),代表n*n矩阵。

Output

输出回字阵(字段宽度为4).

Sample Input

5

Sample Output

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

Source

新生杯

 1 #include<iostream>
 2 #include <cstdio>
 3 using namespace std;
 4
 5 int main()
 6 {
 7     int n;
 8     while(cin>>n)
 9     {
10         int a[n][n];
11         for(int i=0;i<n;i++)
12             for(int j=0;j<n;j++)
13                 a[i][j]=0;
14
15         for(int i=0;i<n;i++)//对角线初始化
16             a[i][i]=(n-i*2)*(n-i*2)-(n-i*2-1);
17
18         for(int i=0;i<n;i++)//根据对角线填入数字(左上部分)
19         {
20             for(int j=1+i;j<n-i-1;j++)//上边部分
21                 a[i][j]=a[i][j-1]-1;
22             for(int j=1+i;j<n-i;j++)//左边部分
23                 a[j][i]=a[j-1][i]+1;
24         }
25
26          for(int i=n-1;i>=0;i--)//根据对角线填入数字(右下部分)
27          {
28              for(int j=n-(n-i+1);j>=n-1-i;j--)//右边部分
29                  a[j][i]=a[j+1][i]+1;
30              for(int j=n-(n-i+1);j>=n-i;j--)//下边部分
31                  a[i][j]=a[i][j+1]-1;
32         }
33
34         for(int i=0;i<n;i++)
35         {
36             for(int j=0;j<n;j++)
37             {
38                 printf("%4d",a[i][j]);
39             }
40             cout<<endl;
41         }
42     }
43     return 0;
44 }
时间: 2024-08-25 20:47:48

合工大 OJ 1332 蛇形阵的相关文章

合工大OJ 1331 回文数

Description 一个正整数,如果从左向右读(称之为正序数)和从右向左读(称之为倒序数)是一样的,这样的数就叫回文数. 任取一个正整数,如果不是回文数,将该数与他的倒序数相加,若其和不是回文数,则重复上述步骤,一直到获得回文数为止. 例如: 68变成154(68+86),再变成605(154+451),最后变成1111(605+506),而1111是回文数. 于是有数学家提出一个猜想: 不论开始是什么正整数,在经过有限次正序数和倒序数相加的步骤后,都会得到一个回文数.至今为止还不知道这个猜

合工大OJ 1337 一加二减三

Description 题目描述:给一个串,形如一+二-三,求值 Input 第一行为一个正整数T,表示数据的组数,接下来有T行每行都是一个形如一+二-三的串,一,二,三均为正整数 Output 对于每个数据输出一行,为表达式的值 Sample Input 21+2-31+1-2 Sample Output 00 Hint 1<=一,二,三<=100 Source 2015新生杯~~ 1 #include<iostream> 2 #include<string> 3 u

合工大OJ 1330 种树

Description 某校大门外长度为L的马路上有一排树,每两棵相邻的树之间的间隔都是1米.我们可以把马路看成一个数轴,马路的一端在数轴0的位置,另一端在L的位置:数轴上的每个整数点,即0,1,2,……,L,都种有一棵树. 由于马路上有一些区域要用来建地铁.这些区域用它们在数轴上的起始点和终止点表示.已知任一区域的起始点和终止点的坐标都是整数,区域之间可能有重合的部分.现在要把这些区域中的树(包括区域端点处的两棵树)移走.你的任务是计算将这些树都移走后,马路上还有多少棵树. Input 输入的

合工大 OJ 1322 窗口

窗口 Description 在某图形操作系统中,有N 个窗口,每个窗口都是一个两边与坐标轴分别平行的矩形区域.窗口的边界上的点也属于该窗口.窗口之间有层次的区别,在多于一个窗口重叠的区域里,只会显示位于顶层的窗口里的内容. 当你点击屏幕上一个点的时候,你就选择了处于被点击位置的最顶层窗口,并且这个窗口就会被移到所有窗口的最顶层,而剩余的窗口的层次顺序不变.如果你点击的位置不属于任何窗口,则系统会忽略你这次点击. 现在我们希望你写一个程序模拟点击窗口的过程. Input 输入的第一行有两个正整数

2019合工大共创五套卷(数一数二数三)模拟卷一+答案PDF

资源链接:https://pan.baidu.com/s/1SVQJDfXmVt6u0xJhFPgC3Q合工大共创考研数学模拟卷,冲刺复习经典必备.数学1和3都是每年五套题,数学2每年只有三套题.现更新数一数二数三的模拟卷一,分享给大家!如下: 原文地址:http://blog.51cto.com/14093933/2325032

2019合工大超越五套卷数一全五套+数三模拟一PDF

资源链接:https://pan.baidu.com/s/1HU4UJKnL87qWnkcFu8JWBg合工大超越考研数学模拟卷数一全五套PDF以及数三模拟一PDF,分享给大家!超越模拟卷较共创模拟卷偏难,考研数学重基础,量力而行.如下: 原文地址:http://blog.51cto.com/14093933/2325480

利用selenium+chrome模拟登陆合工大信息门户并进行自动填写测评

最近学校要填写对于老师的评教,不填写的就无法进行下周的选课∑^)/ 我这么懒,自然不想一个一个点进去填写,想到最近在学爬虫,干脆写一个爬虫帮我弄算了 ╭~~~╮ (o~.~o) 首先打开我们学校的信息门户:http://my.hfut.edu.cn/(仅限校园网) 可以看到我们学校的北门\(0^◇^0)/ 可以看出来,用户名和密码还是很好填的,这个验证码就很麻烦了...... 我选择的方法是,直接保存屏幕截图,然后利用定位元素位置定量裁剪图片,然后利用图像识别识别图中验证码, 当然,直接选图片自

计算机(912 专业课)考研经验及资料总结

数学 ?? 目标 1 -- 总结题型,归纳小规律,什么情况选什么方法:思考多个知识点怎么衔接的 基础部分参考书 <张宇高等数学 18 讲> 张宇 <线性代数辅导讲义> 李永乐 <概率论辅导讲义> 王式安 <考研数学复习全书> 李永乐 <张宇 考研数学 题源探析经典 1000 题> 张宇 <数学基础过关 660 题> 李永乐 ?? 目标 2 -- 做真题,统计理解不深刻的知识点,再巩固知识点 真题相关练习 10 年真题 <数学历年

2016大连理工大学计算机考研经验

2016考研成绩已出,本人报考大连理工大学计算机科学与技术(本科也在大连理工),初试总分387排名第一,政治64,数学114,英语78,数据结构和计算机组成原理131.这个分数并不算高,现在记下本人复习的全过程,只为抛砖引玉,希望能给大家一点启发. 1.复习流程 数学: 114分不算高但也不算低,16数学有些偏难,手滑错了俩选择俩填空,后边错了半道线代和半道概率和四分之一道高数.复习时之前10年真题基本都在140左右.我们班有一个真题基本都在150的最后考了122. 第一个阶段,从3月开学开始到