2026.2.10——OJ66-68题

T66:菱形输出------函数

代码实现:

#include <iostream>

#include <cmath>

using namespace std;

//输出菱形的一行

void print(int i, int n, char &c) {

int totalrows = 2*n-1; //总行数

int distance = abs(i-(n-1)); //距离中间行的距离

//输出前导空格

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

cout<<" ";

}

//输出第一个字符

cout<<c;

c--;

if (c<'A') c='Z';//循环处理

//如果不是第一行或最后一行,输出第二个字符

if (i != 0 && i != totalrows-1) {

// 计算中间空格数

int space = 2*(n-distance-1)-1;

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

cout<<" ";

}

cout<<c;

c--;

if (c<'A') c='Z';

}

}

// 输出整个菱形

void function(int n) {

int totalrows = 2*n-1; //总行数

char current = 'Z'; // 当前字符

// 逐行输出

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

print(i, n, current);

cout << endl;

}

}

int main() {

int n;

bool first = true;

while (cin>>n) {

// 控制空行

if (!first) cout<<endl;

first = false;

// 输出菱形

function(n);

}

return 0;

}

个人思考:

这道题比较困难,对于菱形的每一行需要控制空格以及字符的输出处理,对于整个菱形的输出也要控制,这里写成两个函数比较清晰。对于整个菱形就是计算出总行数,然后一行一行输出。行数、前导空格和字符间距这几个都需要通过找规律来写出通项式。

T67:三角形的个数------函数

代码实现:

#include <iostream>

using namespace std;

int function(int n){

int count=0;

//遍历所有可能的边长组合

for(int a=1;a<=n/3;a++){

for(int b=a+1;b<=n;b++){

int c=n-a-b;

//检查条件

if(c<=b) continue;//确保三条边互不相等

if(a+b<=c) continue;//检查是否能构成三角形

if(c<=0) continue;//确保边长是正整数

count++;

}

}

return count;

}

int main(){

int n;

while(cin>>n){

int result=function(n);

cout<<result<<endl;

}

return 0;

}

个人思考:

这道题相对容易,构成三角形的要求各边互不相等,还有隐藏条件最小的两边之和大于第三条边,可以通过控制两条边遍历,然后用周长来计算第三条边。判断时不符合条件就continue,接着遍历下一个。

T68:素数------函数

代码实现:

#include <iostream>

using namespace std;

//函数:判断一个数是否为素数

bool isprime(int num){

if(num<=1){//0和负整数一定不是素数

return false;

}

if(num==2){

return true;

}

if(num%2==0){//偶数一定不是素数

return false;

}

for(int i=3;i*i<=num;i+=2){//从3开始的奇数

if(num%i==0){

return false;

}

}

return true;

}

int main(){

int m,n;

while(cin>>m>>n){

int count=0;

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

if(isprime(i)){

count++;

}

}

cout<<count<<endl;

}

return 0;

}

个人思考:

这道题就比较老生常谈了,还是判断素数的问题,四种情况,通过遍历所给的范围来判断是否是素数,如果是的话,计数器count就加加。

英语翻译:

P42:如今的传感器网络大多是无线的,被称为无线传感器网络(WSNs)。典型的无线传感器网络由空间上分布的自主传感器组成,这些传感器协同监测物理或环境条件,例如温度、声音、振动、压力、运动或污染物。

无线传感器网络的发展最初是由军事应用(如战场监视)所推动的。如今,这项技术已广泛应用于众多工业和民用领域,包括过程监控与控制、设备健康监测、环境与栖息地监测、医疗保健、家庭自动化以及智能交通控制。

spatially:空间上;在空间方面

autonomous:自主的;自治的;能独立运行的

cooperatively:协同地;合作地

pollutants:污染物;污染物质

military:adj. 军事的;军用的 | n. 军队;军方

battlefield:战场;战地

surveillance:监视;监测;监控

civilian:adj. 民用的;平民的 | n. 平民

P43:全球定位系统(GPS)于 1973 年由美国空军研发。欧盟、俄罗斯和中国也开展了类似的技术研发。自 1994 年起,降级版 GPS 被开放用于民用,以提供可靠的定位、导航和授时服务。任何持有 GPS 接收机的用户,都能在全球任何地点、全天候(无论昼夜)获取精确的位置和时间信息,且用户数量不受限制。

degraded:降级的、降精度的

civilian:adj. 民用的;平民的 | n. 平民

positioning:定位

navigation:导航

unlimited:无限的、不受限制的

P44:协同技术发挥着支撑性作用。例如,生物识别技术可被广泛应用于实现人类、机器与物品之间的个性化交互。人工智能、计算机视觉、机器人技术以及远程呈现技术,未来将使我们的生活更加自动化。

biometrics:生物识别技术

telepresence:远程呈现技术

背单词:

相关推荐
寻寻觅觅☆11 小时前
东华OJ-基础题-106-大整数相加(C++)
开发语言·c++·算法
fpcc12 小时前
并行编程实战——CUDA编程的Parallel Task类型
c++·cuda
偷吃的耗子12 小时前
【CNN算法理解】:三、AlexNet 训练模块(附代码)
深度学习·算法·cnn
化学在逃硬闯CS13 小时前
Leetcode1382. 将二叉搜索树变平衡
数据结构·算法
ceclar12313 小时前
C++使用format
开发语言·c++·算法
Gofarlic_OMS13 小时前
科学计算领域MATLAB许可证管理工具对比推荐
运维·开发语言·算法·matlab·自动化
lanhuazui1013 小时前
C++ 中什么时候用::(作用域解析运算符)
c++
charlee4413 小时前
从零实现一个生产级 RAG 语义搜索系统:C++ + ONNX + FAISS 实战
c++·faiss·onnx·rag·语义搜索
夏鹏今天学习了吗14 小时前
【LeetCode热题100(100/100)】数据流的中位数
算法·leetcode·职场和发展
老约家的可汗14 小时前
初识C++
开发语言·c++