NO.3:花坛
洛洛在散步的时候,看到公园的正方形花坛里开放着许多他不认识的花卉。仔细观察之后,他又发现这些花的种植位置是有规律的。
洛洛发现在正方形花坛的最外层,即第一层上的花都是同一颜色;而花坛的第二层,花的颜色又都是一样的……正方形花坛由若干层花构成,同一层上的花都是同一颜色的,不同层之间的花颜色不一定相同。如下图所示,是一个具有三层花的正方形花坛:
在回到家后,洛洛还记得花坛有几层花围成,以及每层花的颜色,花的颜色用英文大小写字母来表示。但是洛洛忘记了整个花坛的图像,洛洛希望你根据他的描述,把整个花坛的图像用计算机打印字符的方式表示出来。
输入
第一行输入一个整数 n,表示正方形花坛有 n 层花。
第二行输入 n 个字符,第 i 个字符表示第 i 层花的颜色。第一层是花坛最外层。第n 层是花坛最内层,只有一朵花。输出
输出 2*n-1 行,由(2*n-1)*(2*n-1)个字符组成的花坛的图像。
样例输入
3 abC
样例输出
aaaaa abbba abCba abbba aaaaa
题目讲解:
找规律:第一行有一种字母,第二行有两种字母,第三行有三种字母。
对于第i行,有i种字母。
前面i-1种字母都出现两次
其他所有位置上都有第i种字母,是从第i个位置到2n-i个位置。
#include<bits/stdc++.h> using namespace std; int n; string s; int main(){ cin>>n>>s; for(int i=1;i<=2*n-1;i++) { for(int j=1;j<=2*n-1;j++) { int k=min(min(i,j),min(2*n-i,2*n-j)); cout<<s[k-1]; } cout<<endl; } return 0; }