叠筐
Problem Description
需要的時(shí)候,就把一個(gè)個(gè)大小差一圈的筐疊上去,使得從上往下看時(shí),邊筐花色交錯(cuò)。這個(gè)工作現(xiàn)在要讓計(jì)算機(jī)來完成,得看你的了。
Input
輸入是一個(gè)個(gè)的三元組,分別是,外筐尺寸n(n為滿足0< n<80的奇整數(shù)),中心花色字符,外筐花色字符,后二者都為ASCII可見字符;
Output
輸出疊在一起的筐圖案,中心花色與外筐花色字符從內(nèi)層起交錯(cuò)相疊,多筐相疊時(shí),最外筐的角總是被打磨掉。疊筐與疊筐之間應(yīng)有一行間隔。
Sample Input
11 B A
5 @ W
Sample Output
AAAAAAAAA ABBBBBBBBBA ABAAAAAAABA ABABBBBBABA ABABAAABABA ABABABABABA ABABAAABABA ABABBBBBABA ABAAAAAAABA ABBBBBBBBBAAAAAAAAAA @@@ @WWW@ @W@W@ @WWW@@@@代碼如下:
#include < iostream> #include <cstdio> using namespace std; char s [100][100] ; //首先定義一個(gè)字符數(shù)組; int main() {char a,b;int n;int f=0;while(~scanf("%d %c %c",&n,&a,&b))//多組數(shù)據(jù)輸入n,a,b;{if(f) cout<< endl;//注意格式的輸入,首先,f=0,換行;/*cout<<endl 表示輸出換行的意思。endl=end of line換句話說就是讓屏幕上輸出的內(nèi)容換行到下一行。 使用前需要使用#include<iostream>的頭文件,以及在對應(yīng)的函數(shù)中寫入using namespace std或者std::endl;*/if(n==1)//如果只有一個(gè),就輸出第一個(gè)字符a;{cout<< a<< endl;continue;//然后結(jié)束;}int x=n/2+1;//這里的x,為了確定字符數(shù)組`中間的`字符是什么;s[x][x]=a;//字符a,即為中間的字符;for(int i=1;i<=n/2;i++)//這里第一個(gè)for循環(huán)為了控制圈數(shù),從里到外有幾圈;{for(int j=x-i;j<=x+i;j++)//第二個(gè)for循環(huán)控制每一圈;{if(i%2)s[x-i][j]=s[x+i][j]=s[j][x-i]=s[j][x+i]=b;elses[x-i][j]=s[x+i][j]=s[j][x-i]=s[j][x+i]=a;}}s[1][n]=s[1][1]=s[n][1]=s[n][n]=' ';//整個(gè)數(shù)組的四個(gè)角都為空格;for(int i=1;i<=n;i++){for(int j=1;j<=n;j++){cout << s[i][j];//以次輸出字符數(shù)組;}cout << endl;}f=1;//第二次不用換行;}return 0; }總結(jié)
- 上一篇: 家用投影仪距离大概是多少?
- 下一篇: 面型对象 (接口与类的区别)