2026.2.11——OJ69-71题

T69:杨辉三角------二维数组

代码实现:

#include <iostream>

using namespace std;

int main(){

int T;

cin>>T;

while(T--){

int n;

cin>>n;

//创建二维数组,最大为20行20列

int arr2020={0};

//生成杨辉三角

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

for(int j=0;j<=i;j++){

//每行的第一个和最后一个元素为1

if(j==0||j==i){

arrij=1;

}

else{

//其他元素等于上一行相邻两个元素之和

arrij=arri-1j-1+arri-1j;

}

}

}

//输出杨辉三角

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

for(int j=0;j<=i;j++){

cout<<arrij;

//如果不是最后一个元素,输出空格

if(j<i){

cout<<" ";

}

}

cout<<endl;//每一行输出然后换行

}

cout<<endl;//每个杨辉三角后面加一个空行

}

return 0;

}

个人思考:

这道题用二维数组写,分别代表行和列,然后外层循环是进行每一行的逐行填充,内层循环是填充每一行的每一个具体元素,每行的首元素和尾元素赋值为1,其他位置等于上方两数之和。

T70:矩阵问题------二维数组

代码实现:

#include <iostream>

using namespace std;

int main(){

int N;

int arr2020={0};

while(cin>>N){

int size=2*N+1;

//填充矩阵

for(int i=0;i<size;i++){

for(int j=0;j<size;j++){

//判断是否在主对角线或副对角线上

if(i==j||i+j==size-1){

arrij=1;

}

//上半三角区域

else if(i<j&&i+j<size-1){

arrij=2;

}

//下半三角区域

else if(i>j&&i+j>size-1){

arrij=3;

}

//左半三角区域

else if(i>j&&i+j<size-1)

{

arrij=4;

}

//右半三角区域

else if(i<j&&i+j>size-1){

arrij=5;

}

}

}

//输出矩阵

for(int i=0;i<size;i++){

for(int j=0;j<size;j++){

if(j>0){

cout<<" ";

}

cout<<arrij;

}

cout<<endl;

}

}

return 0;

}

个人思考:

这道题是需要根据主副对角线来将区域划分为五个部分,这五个部分对应的行i和列j有大小关系,找到这个是解决这道题的关键。主对角线是i和j的关系,副对角线是i+j和size-1的大小关系。

T71:发牌------二维数组

代码实现:

#include <iostream>

using namespace std;

int main(){

//扑克牌花色

char suits4={'c','d','h','s'};

//四个人手上的牌:花色数组和数字数组

char handsuits413;//存储花色//二维数组表示4个人,每人13张牌的花色

int handnums413;//存储数字//二维数组表示4个人,每人13张牌的数字

//初始化牌堆并直接发牌

int card=0;//已发牌的总数

int person=0;//当前正在发牌给哪个人(0-3)

int pos=0;//每个人手中牌的位置(0-12),也就是我手里的第几张牌

for(int i=0;i<4;i++){

for(int num=0;num<13;num++){

//记录当前牌的信息

handsuitspersonpos=suitsi;//为什么用数组访问?因为花色是字符类型的离散值。

handnumspersonpos=num;//为什么直接用变量?因为数字本身就是整数,不需要数组来映射。

//每个人依次获得一张牌

person=(person+1)%4;

**//**当四个人都发完一张牌后,开始下一轮发牌

if(person==0){

pos++;

}

card++;

}

}

//读取查询并输出结果

int n;

while(cin>>n){

//数组索引从0开始,所以n-1

int idx=n-1;

//输出该人手上的所有牌

for(int i=0;i<13;i++){

//输出花色和数字

cout<<handsuitsidxi<<" "<<handnumsidxi;

**//**如果不是最后一张牌,则输出一个空格

if(i!=12){

cout<<" ";

}

}

cout<<endl;

}

return 0;

}

个人思考:

这道题比较复杂,需要考虑的东西很多,一个是四个玩家,一个是每张牌的花色,一个是每张牌的数字,另外还需要记录已经发了多少张牌,以及每发四张牌就对应每个玩家手中的牌多一张。这整个代码是采用预发牌的机制,将结果存到二维数组里需要看哪个玩家就直接输出对应的结果。

英语翻译:

P45:作为一项新兴技术,物联网(loT)将变得更加成熟和复杂。图12C-1展示了可能从物联网中受益的主要技术进步和关键应用。例如,供应链现在比以往任何时候都得到了更好的支持。垂直市场应用可能代表下一波技术进步浪潮。随着我们迈向2020年,无处不在的定位技术有望成为现实。在此之后,一个物理物联网可能会在全球范围内形成。这些进步将显著提升人类能力,改善社会成果、国家生产力和生活质量。

sophisticated:精密的、复杂的、先进的

supply chains:供应链

vertical:垂直的、行业特定的

ubiquitous:无处不在的、普遍存在的

positioning:定位(技术)

scale:规模、范围

societal:社会的、与社会相关的

P46:3.物联网的体系架构

物联网系统很可能采用事件驱动型架构。在图12C-2中,物联网的发展以三层架构的形式呈现。顶层由驱动型应用构成,物联网的应用空间十分广阔。底层代表各类传感设备即射频识别(RFID)标签、ZigBee或其他类型的传感器,以及用于路径规划的GPS导航仪。这些传感设备以RFID网络、传感器网络和GPS的形式,实现本地或广域连接。传感设备采集到的信号或信息,通过中间层的云计算平台与应用程序相连。

layer:层

sensing devices:传感设备

road-mapping:路径规划、路线测绘

navigators:导航仪、导航设备

wide-area-connected:广域连接的

P47:信号处理云构建在移动网络、互联网骨干网以及中间层的各类信息网络之上。在物联网中,感知事件的含义并不遵循确定性或句法模型。事实上,面向服务架构(SOA)模型在这里是适用的。大量传感器和过滤器被用于采集原始数据。各类计算与存储云及网络被用于处理数据,并将其转化为信息和知识格式。感知到的信息被用于构建智能应用的决策系统。中间层也被视为语义网或网格。一些参与者(服务、组件、化身)是自引用的。

backbone:骨干网、主干网

deterministic:确定性的、可预测的

syntactic:句法的、语法的

filter:过滤器、筛选器

raw data:原始数据

grid:网格、网格计算

put together:构建、整合、组装

semanic web:语义网

背单词:

相关推荐
珂朵莉MM29 分钟前
第七届全球校园人工智能算法精英大赛-算法巅峰赛产业命题赛第3赛季优化题--束搜索
人工智能·算法
Omics Pro1 小时前
首个!外源天然产物综合性代谢图谱
数据库·人工智能·算法·机器学习·r语言
voidmort1 小时前
3. 微调(Fine-tuning)与强化学习(RL)的核心思想
python·深度学习·算法
人道领域2 小时前
【LeetCode刷题日记】669.修剪二叉搜索树
开发语言·python·算法
QiLinkOS3 小时前
【从实验室到商业战场:发明专利如何重塑科技与企业的共生生态】
大数据·c语言·数据结构·c++·人工智能·单片机·算法
Irissgwe3 小时前
c++11(lambda表达式与包装器、线程库)
c++·c++11·lambda表达式·线程库·包装器·互斥量库·条件变量库
小白兔奶糖ovo4 小时前
【Leetcode】231. 2的幂
linux·算法·leetcode
xiaoxiaoxiaolll4 小时前
《Light: Science & Applications》合并BIC实现80倍阈值单模运行:超紧凑光子晶体激光器新突破
人工智能·算法·机器学习
Peter·Pan爱编程4 小时前
14. Lambda 表达式:随手可写的函数对象
c++·算法·ai编程
-To be number.wan4 小时前
算法日记 | 暴力枚举
学习·算法