您的位置:首页 > 编程语言

四川大学线下编程比赛第一题:数字填充

2015-12-17 14:36 330 查看



四川大学线下编程比赛第一题:数字填充

公布公司:

有 效 期:

CSDN

2014-09-27至2015-09-26

难 度 等 级:

答 题 时 长:

编程语言要求:











120分钟

C C++ Java C#

题目详情

peter喜欢玩数字游戏。但数独这种游戏对他来说太简单了。于是他准备玩一个难的游戏。游戏规则是在一个N*N的表格里填数,规则:对于每一个输入的N,从左上角開始,总是以对角线为起点,先横着填。再竖着填。这里给了一些例子,请在例子中找到规律并把这个N*N的表格打印出来吧。

输入描写叙述:

多组測试数据(数据量在100组以内)。

每组測试数据仅仅有一行为一个整数N(1<=N<=30)。表示表格的大小。

输出描写叙述:

对于每组输入数据,输出N行,为填完的表格(N行。每行N个整数,每一个数字之间用空格隔开。

答题说明

输入例子:

3

5

输出例子:

1 2 3

4 6 7

5 8 9

1 2 3 4 5

6 10 11 12 13

7 14 17 18 19

8 15 20 22 23

9 16 21 24 25


题解:直接模拟;

#include <iostream>
using namespace std;
#define MAX 30+1
int main(){
int n,map[MAX][MAX];
while (cin>>n){
int num=1;
for (int i=0;i<n;i++){
for (int j=i;j<n;j++)
map[i][j]=num++;
for (int k=i+1;k<n;k++)
map[k][i]=num++;
}
for (int i=0;i<n;i++){
for (int j=0;j<n-1;j++)
cout<<map[i][j]<<" ";
cout<<map[i][n-1]<<endl;
}

}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: