洛洛在散步的時候,看到公園的正方形花壇里開放著許多他不認識的花卉,仔細觀察之后,他又發現這些花的種植位置是有規律的,
洛洛發現在正方形花壇的最外層,即第一層上的花都是同一顏色;而花壇的第二層,花的顏色又都是一樣的……正方形花壇由若干層花構成,同一層上的花都是同一顏色的,不同層之間的花顏色不一定相同,如下圖所示,是一個具有三層花的正方形花壇:

在回到家后,洛洛還記得花壇有幾層花圍成,以及每層花的顏色,花的顏色用英文大小寫字母來表示,但是洛洛忘記了整個花壇的影像,洛洛希望你根據他的描述,把整個花壇的影像用計算機列印字符的方式表示出來,
輸入
第一行輸入一個整數 n,表示正方形花壇有n層花,
第二行輸入n個字符,第i個字符表示第i層花的顏色,第一層是花壇最外層,第n層是花壇最內層,只有一朵花,
輸出
輸出2n-1行,由(2n-1)(2n-1)個字符組成的花壇的影像,
樣例輸入1
3
abC
樣例輸出1
aaaaa
abbba
abCba
abbba
aaaaa
樣例輸入2
4
abac
樣例輸出2
aaaaaaa
abbbbba
abaaaba
abacaba
abaaaba
abbbbba
aaaaaaa
這題其實就是找規律
1.輸入n 可以知有幾個環以及2n-1行
2.第一行的個數為2n-1,之后每行的個數 遞減 2
附上代碼
#include<bits/stdc++.h>
using namespace std;
char a[2005][2005];
char s[1005];
int n;
int main(){
scanf("%d",&n);
getchar(); //如果不加getchar輸入s會有問題,或者也可以用cin輸入n
gets(s);
int k,m;
n=n*2-1;
k=n;m=n; //k代表每行的個數
for(int i=0;s[i];i++){ // 外層回圈控制每個環的字母
for(int j=i;j<k+i;j++) //每層有k個,每個都從i開始
{
a[i][j]=a[j][i]=a[n-1][j]=a[j][n-1]=s[i]; //四個面賦值
}
n--;k=k-2;//進行完一次 n自減,k減2
}
for(int i=0;i<m;i++)
{
puts(a[i]);
}
return 0;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/229170.html
標籤:其他
上一篇:C語言學習筆記之流程控制(一)
下一篇:12.1
