2026.2.14——OJ78-82题

T78:方块转换------二维数组

代码实现:

#include <iostream>

using namespace std;

int main() {

int n;

cin >> n;

char a1010, b1010;

**//**读取原始图案

for (int i = 0; i < n; i++)

for (int j = 0; j < n; j++)

cin >> aij;

**//**读取目标图案

for (int i = 0; i < n; i++)

for (int j = 0; j < n; j++)

cin >> bij;

//检查旋转(#1-#3)

for (int r = 1; r <= 3; r++) {

bool match = true;

for (int i = 0; i < n && match; i++)

for (int j = 0; j < n && match; j++) {

// 根据旋转角度计算对应位置

int x, y;

if (r == 1) { x = j; y = n-1-i; } // 90度

else if (r == 2) { x = n-1-i; y = n-1-j; } // 180度

else { x = n-1-j; y = i; } // 270度

if (aij != bxy) match = false;

}

if (match) {

cout << r << endl;

return 0;

}

}

**//检查#4:**反射

bool match = true;

for (int i = 0; i < n && match; i++)

for (int j = 0; j < n && match; j++)

if (aij != bin-1-j) match = false;

if (match) {

cout << 4 << endl;

return 0;

}

**//检查#5:**反射后再旋转

for (int r = 1; r <= 3; r++) {

match = true;

for (int i = 0; i < n && match; i++)

for (int j = 0; j < n && match; j++) {

// 先反射

int ref_j = n-1-j;

// 再旋转

int x, y;

if (r == 1) { x = ref_j; y = n-1-i; } // 90度

else if (r == 2) { x = n-1-i; y = n-1-ref_j; } // 180度

else { x = n-1-ref_j; y = i; } // 270度

if (aij != bxy) match = false;

}

if (match) {

cout << 5 << endl;

return 0;

}

}

**//检查#6:**不改变

bool same = true;

for (int i = 0; i < n && same; i++)

for (int j = 0; j < n && same; j++)

if (aij != bij) same = false;

if (same) {

cout << 6 << endl;

return 0;

}

**//否则#7:**无效转换

cout << 7 << endl;

return 0;

}

个人思考:

这道题比较繁琐,先输入原始图案和目标图案,分别检查每种变换是否符合,其比较重要的一点是弄清楚每种变换的坐标关系,这可以通过多找几组数据找到其中的规律。

T81:求小数位数个数------字符串

代码实现:

#include <iostream>

#include <string>

using namespace std;

int main() {

string num;

while (cin >> num) {

int count = 0;

bool find = false;

for (int i = 0; i < num.length(); i++) {

char c = numi;

if (find) {

count++;

}

if (c == '.') {

find = true;

}

}

cout << count << endl;

}

return 0;

}

个人思考:

这道题考察字符串的知识,用find来标记是否遇到小数点,如果没遇到find就是false,遇到就是true,然后根据find可以判断是否需要count++,然后再输出对应的值。

T82:进制转换------字符串

代码实现:

#include <iostream>

#include <string>

#include <algorithm>

using namespace std;

string function_N(int m,int N){

//处理特殊情况:十进制m为0的情况

if(m==0) return "0";

string result="";

// 进行进制转换

while(m>0){

int r=m%N;//余数

char digit;

//根据余数大小转换成相应字符

if(r<10){

digit='0'+r;

}

else{

digit='A'+(r-10);

}

**result.push_back(digit);//**将一个字符添加到字符串的末尾

m/=N;//更新m**,继续处理更高位**

}

**//**反转字符串,因为我们是按从低位到高位的顺序生成的

reverse(result.begin(),result.end());

return result;

}

int main(){

int m,N;

//循环读取多组测试数据

while(cin>>m>>N){

//转换并输出结果

cout<<function_N(m,N)<<endl;

}

return 0;

}

个人思考:

这道题需要知道十进制转其他进制的规则,需要通过不断取余来拼接起来,注意这里还需要翻转顺序,直接利用reverse函数可以,然后记得要包含<algorithm>头文件。因为考虑十六进制这种,所以还需要注意余数r小于10,就用'0'+r得到数字字符;大于等于10就用'A'+(r-10)得到对应大写字母。

英语翻译:

P54: 一次能处理16位、32位和64位数据的处理器的发展,提高了计算机的运行速度。计算机能够执行的可识别模式的完整集合(即全部操作指令列表),被称为它的指令集。这两个因素------一次可处理的位数和指令集的规模------都随着现代数字计算机的持续发展而不断增长。

processor:处理器;处理单元

instruction set:指令集

ongoing:正在进行的;持续的;未完成的

P55:III.硬件

现代数字计算机在概念上都是相似的,无论其尺寸大小。不过,我们可以根据成本和性能将它们划分为多个类别:

·个人计算机或 微型计算机**:** 一种成本相对较低的机器,通常是台式机尺寸(不过"笔记本电脑"小到可以放进公文包,而"掌上电脑"则可以装进口袋)。·工作站: 一种具备增强图形和通信能力的微型计算机,这使其特别适用于办公工作。·小型计算机: 通常价格过高,不适合个人使用,其能力更适合企业、学校或实验室。· 大型机**:** 一种大型、昂贵的机器,能够满足大型企业、政府部门、科研机构等的需求(其中最大、最快的这类计算机被称为超级计算机)。

conceptually:从概念上;在概念层面

Nevertheless:然而;尽管如此;不过

microcomputer:微型计算机;微机

desktop:台式机;桌面型计算机

laptops:笔记本电脑;膝上型电脑

briefcase:公文包;公事包

palmtops:掌上电脑;手持电脑

mainframe:大型机;主机(计算机)

enterprise:企业;大型企业

establishment:机构;单位;研究机构

or the like:诸如此类;等等;以及类似的事物

P56:数字计算机并非一台单一的机器,而是一个由五个截然不同的元素组成的系统:(1)中央处理单元(2)输入设备(3)存储设备(4)输出设备(5)通信网络,也称为总线,它将系统的所有元素连接起来,并使系统与外部世界相连。

distinct:清晰的;截然不同的;有区别的

bus:总线;数据总线

背单词:

相关推荐
8Qi89 小时前
LeetCode 75:颜色分类(荷兰国旗问题)—— Java 题解 ✅
java·算法·leetcode·指针·排序
888CC++10 小时前
如何在 C 语言中进行程序调试?
前端·javascript·算法
(●—●)橘子……12 小时前
力扣第503场周赛练习理解
python·学习·算法·leetcode·职场和发展·周赛
明志数科13 小时前
4D时序标注技术详解:让机器人理解连续动作的数据基础
java·算法·机器人
feng_you_ying_li13 小时前
C++复习二,继承与多态
c++
小小de风呀13 小时前
de风——【从零开始学C++】(十一):list的基本使用和模拟实现
开发语言·c++·list
KaMeidebaby14 小时前
卡梅德生物技术快报|原核表达系统工艺优化:包涵体重折叠 + 分子筛纯化实现功能 RBD 高效制备,附全参数配置
前端·人工智能·算法·数据挖掘·数据分析
陌路2014 小时前
C++高级进阶--夯实进阶基础(1)
开发语言·c++
无限码力14 小时前
携程0510笔试真题【单数组交换】
算法·携程笔试·携程笔试真题·携程0510笔试真题