2026.2.14——OJ78-82题

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

代码实现:

#include <iostream>

using namespace std;

int main() {

int n;

cin >> n;

char a[10][10], b[10][10];

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

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

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

cin >> a[i][j];

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

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

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

cin >> b[i][j];

//检查旋转(#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 (a[i][j] != b[x][y]) 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 (a[i][j] != b[i][n-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 (a[i][j] != b[x][y]) 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 (a[i][j] != b[i][j]) 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 = num[i];

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:总线;数据总线

背单词:

相关推荐
七颗糖很甜22 分钟前
“十五五”气象发展规划:聚焦五大核心任务
大数据·python·算法
科研前沿29 分钟前
镜像视界浙江科技有限公司的关键技术突破有哪些?
大数据·人工智能·科技·算法·音视频·空间计算
嫩萝卜头儿38 分钟前
2 - 复杂度收尾 + 链表经典OJ
数据结构·算法·链表·复杂度
星马梦缘1 小时前
算法设计与分析 作业二 答案与解析
算法·图论·dfs·bfs·floyd-warshall·bellman_ford·多源最短路
玛丽莲茼蒿1 小时前
Leetcode hot100 每日温度【中等】
算法·leetcode·职场和发展
cjp5601 小时前
009.UG二次开发,任务环境草图优化3(高级功能生成直线)
算法
样例过了就是过了1 小时前
LeetCode热题100 分割等和子集
数据结构·c++·算法·leetcode·动态规划
逻辑驱动的ken1 小时前
Java高频面试考点18
java·开发语言·数据库·算法·面试·职场和发展·哈希算法
麦兜和小可的舅舅2 小时前
ClickHouse 列管理机制解析:从 COW、IColumn 到 CRTP
c++·clickhouse
北顾笙9802 小时前
day38-数据结构力扣
数据结构·算法·leetcode