1251: 字母图形 [水题]
时间限制: 1 Sec 内存限制: 128 MB提交: 140 解决: 61 统计
题目描述
利用字母可以组成一些美丽的图形,下面给出了一个例子:
ABCDEFG
BABCDEF
CBABCDE
DCBABCD
EDCBABC
这是一个5行7列的图形,请找出这个图形的规律,并输出一个n行m列的图形。
输入
输入一行,包含两个整数n和m,分别表示你要输出的图形的行数的列数。
输出
输出n行,每个m个字符,为你的图形。
1 < = n, m < = 26
样例输入
5 7
样例输出
ABCDEFG
BABCDEF
CBABCDE
DCBABCD
EDCBABC
来源
蓝桥杯
用一个栈和两个队列(其实用一个队列应该也可以)来维护就可以了
#include<cstdio> #include<stack> #include<queue>using namespace std;int main() {int n,m;char c;scanf("%d %d", &n, &m);queue<char> que1;queue<char> que2;stack<char> s;for(int i = 1; i < 26; i++){c = 'A' + i;que1.push(c);}for(int i = m-1; i >= 0; i--){c = 'A' + i;que2.push(c);}for(int i = 1; i <= n; i++){for(int j = 0; j < m; j++){c = que2.front();que2.pop();s.push(c);que2.push(c);}for(int k = 0; k < m; k++){printf("%c", s.top());s.pop();}c = que1.front();que1.pop();que2.push(c);que2.pop();printf("\n");}return 0; }