【PTA 7-9】剥洋葱

                                   7-9 剥洋葱 (15 分)

布告,布告! 应老师要求,我们要做一道打印图形的题目,这是程序员最基本的能力。 那废话不多说,我们来说要求的图形 AAAAA ABBBA ABCBA ABBBA AAAAA 就是外到内,从A到Z。每一层都是一种字母,最里面的一层为一个,即最中心的一个。

输入格式:

一行,一个整数,即图形的层数

输出格式:

如上述图形

输入样例:

3

输出样例:

AAAAA
ABBBA
ABCBA
ABBBA
AAAAA

 

很有意思的一道字符串处理题。我的方法是逐层覆盖,先将第一行字符串全部初始化为‘A’,然后从第二行开始,每层字符串复制上一层,中间部分用新字母覆盖。

例如:

第一层

AAAAA

第二层复制

AAAAA

AAAAA 

覆盖

AAAAA

ABBBA 

第三层复制

AAAAA

ABBBA 

ABBBA 

覆盖 

AAAAA

ABBBA 

ABCBA 

然后反向输出前面几层即可;

代码:

#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define inf 0x3f3f3f3f
#define mem(a,b) memset(a,b,sizeof(a))

char s[55][55];

int main()
{
	int n,i,j;
	mem(s,'A');
	cin>>n;
	for(i=0;i<n*2-1;i++)
		s[0][i]='A';
	int flag=1;
	for(i=1;i<n;i++)
	{
		for(j=0;j<n*2-1;j++)
		{
			if(j<flag||j>=n*2-1-flag)
				s[i][j]=s[i-1][j];
			else
				s[i][j]=s[i-1][j]+1;
		}
		flag++;
	}
	for(i=0;i<n;i++)
	{
		for(j=0;j<n*2-1;j++)
			cout<<s[i][j];
		cout<<endl;
	}
	for(i=n-2;i>=0;i--)
	{
		for(j=0;j<n*2-1;j++)
			cout<<s[i][j];
		cout<<endl;
	}
	return 0;
}

 

全部评论

相关推荐

10-16 15:48
算法工程师
点赞 评论 收藏
分享
bg27强双非本,目前在学习golang后端gin框架部分,在b站找了一个轮子项目敲了一下,技术栈是gin&nbsp;+&nbsp;gorm&nbsp;+&nbsp;mysql&nbsp;+&nbsp;redis。我目前的想法是这一个月学习408和go八股以及刷算法然后在12月找个寒假实习然后大三下开始准备考研。我是考研意愿比较强烈,想问一下我是应该all&nbsp;in其中一个方向吗,我感觉我实习对我考研来说也是没什么帮助的好像。
牛客28967172...:毕业工作,考研,考公是完全不同的方向。 99%的人拼尽全力也只能把一个做好(能做好都已经是佼佼者了,比如进进大厂,考985或者考公) 如果你确定要考研可以不用学任何就业技术框架,也不用实习经验,刷题背知识点就行,但注意必须考92院校起步,因为这个年代双非硕毕业后完全不如双非本(互联网行业),可以说双非硕在互联网就业完全是负收益
投递哔哩哔哩等公司10个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务