刷清橙OJ--A1033.绘制图形

来源:互联网 发布:淘宝店铺怎么免费推广 编辑:程序博客网 时间:2024/06/09 10:30
问题:
A1033. 绘制图形
时间限制:1.0s   内存限制:512.0MB  
总提交次数:2503   AC次数:1561   平均分:71.68
问题描述
  找出下面给出图形的规律,给出n,画一个n行的对应图形。
  1 2 3 4
  12 13 14 5
  11 16 15 6
  10 9 8 7
输入格式
  输入包含一个数n。1<=n<=30
输出格式
  输出与上图类似n行的图形。
样例输入
4
样例输出
1 2 3 4
12 13 14 5
11 16 15 6
10 9 8 7

代码:

#include<iostream>using namespace std; int main(){int a[32][32] = {0};int n, i = 0, j = 0, count = 1;cin >> n;a[0][0] = 1;while(count < n * n){while(j + 1 < n && a[i][j + 1] == 0){a[i][++j] = ++count;}while(i + 1 < n && a[i + 1][j] == 0){a[++i][j] = ++count;}while(j - 1 >= 0 && a[i][j - 1] == 0){a[i][--j] = ++count;}while(i - 1 >= 0 && a[i - 1][j] == 0){a[--i][j] = ++count;}}for(i = 0; i < n; i++){for(j = 0; j < n; j++){cout << a[i][j] << " ";}cout << endl;}return 0;} 
个人想法:我把自己都绕晕了也没找到答案。后来的时候看试题讨论里找到的一个网友的答案。这种代码我是想破脑袋也想不出来的。

原创粉丝点击