• ACM程序设计选修课——1030: Hungar的时尚球场(水题+耐心)


    1030: Hungar的时尚球场

    Time Limit: 1 Sec  Memory Limit: 64 MB
    Submit: 14  Solved: 8
    [Submit][Status][Web Board]

    Description

    从NBA新秀训练中心回来以后,Hungar意识到自己的水平还不足以在NBA立足,于是他决定每天去球场练习

    这天他来到一个球场,却发现这个球场十分破旧不堪,这让他无法忍受,在他看来这个球场应该是这样的:  球场的大小是n*n,而且这个球场应该被大写的英文字母所填充,填充规则是这样的,球场的最外面一圈用'A'填充,里面一圈用'B'填充,....., 直到球场被填满,如果填到'Z'棋盘还没 满的话,接下来用的就又是'A',B..以此类推

    现在告诉你球场的大小,请告诉Hungar填满以后的球场是什么样子的。

    Input

    第一行一个整数T(T <=100), 代表有T组数据.

    对于每一组数据,包含一个整数n(1 <= n <= 100).

    Output

    第一行输出Case #X: (不包括引号),X代表第X组数据

    n行,每行n个字符,代表填充以后的球场.

    Sample Input

    2
    2
    3

    Sample Output

    Case #1:
    AA
    AA
    Case #2:
    AAA
    ABA
    AAA

    题目本身很简单,就是需要耐心不停地调试来控制变量的范围。与HDU2074叠框很相似

    ,但又稍有不同。本想拿那道代码来当模版的,想想还是算了,简单的还是自己写吧。

    写的比叠框那代码要好。简单易懂。

    代码:

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<string>
    #include<queue>
    #include<set>
    #include<map>
    #include<sstream>
    #include<algorithm>
    #include<cmath>
    #include<cstdlib>
    using namespace std;
    char list[600][600];
    int n;
    void change(const int &x,const int &y,const char &c)//按顺序包边上→,左↑,右←,右↓
    {
    	for (int i=x; i<=n-1-x; i++) 
    	{
    		list[x][i]=c;
    	}
    	for (int i=n-y-1; i>=y; i--)
    	{
    		list[i][y]=c;
    	}
    	for (int i=n-1-x; i>=x; i--)
    	{
    		list[n-1-x][i]=c;
    	}
    	for (int i=y; i<=n-1-y; i++)
    	{
    		list[i][n-1-y]=c;
    	}
    }
    int main (void)
    {
    	int t,i,j;
    	char c;
    	cin>>t;
    	for (int q=1; q<=t; q++)
    	{
    		memset(list,0,sizeof(list));//清空一下
    		cin>>n;
    		c='A';
    		for (int i=0; i<=n/2; i++)
    		{
    			if(c>'Z')
    				c-=26;
    			change(i,i,c);
    			c++;
    		}	
    		cout<<"Case #"<<q<<":"<<endl;
    		for (int i=0; i<n; i++)
    		{
    			for (int j=0; j<n; j++)
    			{
    				cout<<list[i][j];
    			}
    			cout<<endl;
    		}
    	}	
    	return 0;
    }
  • 相关阅读:
    批量修改文件
    mysql-5.5.32-linux2.6-x86_64.tar.gz 二进制源码定制安装MySQL服务器
    源码搭建nginx服务器
    Python--安装
    k8s-修改线程数
    容器卡在terminate状态无法删除
    扩/
    磁盘分区+挂载
    499
    清理磁盘
  • 原文地址:https://www.cnblogs.com/Blackops/p/5356410.html
Copyright © 2020-2023  润新知