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; }