进阶3 .字母图形
题目描述
利用字母可以组成一些美丽的图形,下面给出了一个例子:
ABCDEFG
BABCDEF
CBABCDE
DCBABCD
EDCBABC
这是一个5行7列的图形,请找出这个图形的规律,并输出一个n行m列的图形。
代码
cpp
#include <iostream>
#include <cmath> // 需要用到 abs() 函数
using namespace std;
int main() {
int n, m;
// 读取输入的行数 n 和列数 m
if (cin >> n >> m) {
// 外层循环控制行
for (int i = 0; i < n; ++i) {
// 内层循环控制列
for (int j = 0; j < m; ++j) {
// 根据行列之差的绝对值计算当前位置的字符
char c = 'A' + abs(i - j);
cout << c;
}
// 每输出完一行后换行
cout << endl;
}
}
return 0;
}
总结
假设行号为 i (从 0 开始算),列号为 j(从 0 开始算):
- 当 i =j 时,距离是 0,字母是
'A' + 0 = 'A' - 当 i \=j 时,字母的偏移量刚好是行号和列号之差的绝对值,即
abs(i - j)。
例如在第 2 行(i=2):
- 第 0 列(j =0):
abs(2 - 0) = 2,对应'A' + 2 = 'C' - 第 1 列(j =1):
abs(2 - 1) = 1,对应'A' + 1 = 'B' - 第 2 列(j =2):
abs(2 - 2) = 0,对应'A' + 0 = 'A' - 第 3 列(j =3):
abs(2 - 3) = 1,对应'A' + 1 = 'B'
所以,任意位置 (i ,j ) 上的字符就是:'A' + abs(i - j)。
翻译
IV. 存储硬件
计算机的主存被组织成易于管理的单元,称为存储单元。为了反映以任何顺序访问存储单元的能力,计算机的主存通常被称为随机存取存储器。 RAM是微处理器的"候诊室"(等待区)。它保存等待处理的原始数据、用于处理该数据的程序指令,以及控制计算机系统基本功能的操作系统指令。它还保存处理结果,直到它们可以被移动到更永久的位置。ROM(只读存储器)包含少量指令和数据,称为引导加载程序。引导加载程序指令告诉数字设备如何启动。通常,引导加载程序执行自检,以了解硬件是否正常运行,并且还可能验证基本程序是否未被损坏。然后它将操作系统加载到RAM中。RAM是临时的且易失的,而ROM则更持久且非易失。即使设备关闭,ROM的内容也保持原样。
大多数计算机都有额外的存储设备,称为大容量存储(或辅助存储)系统。个人计算机通常使用三种类型:磁性、光学和固态。磁存储通过磁化磁盘或磁带表面上的微观粒子来表示数据。第一代个人计算机使用盒式磁带进行存储,尽管软盘存储很快就出现了。今天,磁存储技术最常见的例子是磁盘或硬盘驱动器。 CD、DVD和蓝光技术被归类为光存储,它将数据表示为光盘表面上的微观亮点和暗点。光学技术分为三类:只读、可记录和可重写。固态存储(有时称为闪存)将数据存储在可擦除、可重写的电路中。存储卡是一种扁平的固态存储介质,常用于将文件从数码相机和媒体播放器传输到计算机。固态驱动器是闪存的一个封装,可用作硬盘驱动器的替代品。 USB闪存驱动器(U盘)是一种便携式存储设备,使用内置USB连接器直接插入计算机系统单元。
