目录
  1. 1. 字母图形问题
    1. 1.1. 问题描述
    2. 1.2. 问题分析
    3. 1.3. 代码实现
    4. 1.4. 运行结果
    5. 1.5. 总结
字母图形

字母图形问题

问题描述

问题描述

利用字母可以组成一些美丽的图形,下面给出了一个例子:

ABCDEFG

BABCDEF

CBABCDE

DCBABCD

EDCBABC

这是一个5行7列的图形,请找出这个图形的规律,并输出一个n行m列的图形。

输入格式

输入一行,包含两个整数n和m,分别表示你要输出的图形的行数的列数。

输出格式

输出n行,每个m个字符,为你的图形。

样例输入

5 7

样例输出

ABCDEFG
BABCDEF
CBABCDE
DCBABCD
EDCBABC

数据规模与约定

1 <= n, m <= 26。

问题分析

此处每一行往下可以看出从字母开始倒序到字母A,接着再重新开始计算,可以发现字母的序号与两个坐标的差的绝对值有关。那么可以试着从横纵坐标入手去确定每个位置的字母

代码实现

#include <iostream>
#include <bits/stdc++.h>
using namespace std;
int main(){
int n,m;//行与列
char FBI='A';
cin>>n>>m;
char a[n][m];
for(int i=0;i<n;++i){
for(int j=0;j<m;j++){
a[i][j]=(FBI+abs(i-j));//求绝对值
}
}

for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
cout<<a[i][j];
}
cout<<endl;
}
return 0;
}

运行结果

5 7
ABCDEFG
BABCDEF
CBABCDE
DCBABCD
EDCBABC

--------------------------------
Process exited after 2.77 seconds with return value 0
请按任意键继续. . .

总结

用两重循环来枚举所有的坐标,使用绝对值函数计算出坐标的差,再输出对应的字符。此处有一个函数abs(),计算整数的绝对值,那么计算浮点数的绝对值采用fabs()

文章作者: Jachie Xie
文章链接: https://xjc5772.github.io/2020-01/18/%E7%AE%97%E6%B3%95/%E5%AD%97%E6%AF%8D%E5%9B%BE%E5%BD%A2/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 XJC&Blog
打赏
  • 微信
  • 支付宝

评论