首页 > 其他 > 详细

“蓝桥杯”练习系统 - 基础练习 - 字母图形

时间:2020-01-31 23:48:05      阅读:70      评论:0      收藏:0      [点我收藏+]

思路1:

先设法输出前缀(逆序的部分), 再输出后面的部分. 特别要小心范围.

 1 #include <iostream>
 2 using namespace std;
 3 
 4 char letters[27] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
 5 
 6 int main()
 7 {
 8     ios::sync_with_stdio(false);
 9     cin.tie(0);
10 
11     int n, m;
12     cin >> n >> m;
13     for (int i = 0; i < n; i++) {
14         for (int pre = 0; pre < min(i, m); pre++)
15             cout << letters[i - pre];
16         for (int suf = 0; suf < m - i; suf++)
17             cout << letters[suf];
18         cout << endl;
19     }
20 
21     return 0;
22 }

 

思路2:

更深一步找规律会发现, 在矩阵中, 同一字母对应的横纵坐标之差的绝对值是相等且唯一的. 可用两重循环枚举所有坐标, 计算坐标差, 再输出对应的字符.

 1 #include <iostream>
 2 #include <cmath>
 3 using namespace std;
 4 
 5 char letters[27] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
 6 
 7 int main()
 8 {
 9     ios::sync_with_stdio(false);
10     cin.tie(0);
11 
12     int n, m;
13     cin >> n >> m;
14     for (int x = 0; x < n; x++) {
15         for (int y = 0; y < m; y++)
16             cout << letters[abs(x - y)];
17         cout << endl;
18     }
19 
20     return 0;
21 }

“蓝桥杯”练习系统 - 基础练习 - 字母图形

原文:https://www.cnblogs.com/AntonLiu/p/12247025.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!