ACM社团第一次测试题解(禁止直接复制粘贴提交)
第一题:中位数
思路:
解法一:暴力比较,两个数之间一直比较得出中位数
解法二:快排函数,数组中间值即为中位数
代码:
1.c语言版:
#include <stdio.h>
int arr[10010];
void solve() {int a, b, c;scanf("%d %d %d", &a, &b, &c);arr[1] = a;arr[2] = b;arr[3] = c;// 使用冒泡排序来排序 arr[1], arr[2], arr[3]for (int i = 1; i <= 2; i++) { // 需要排序两轮for (int j = 1; j <= 2; j++) {if (arr[j] > arr[j + 1]) {// 交换 arr[j] 和 arr[j + 1]int temp = arr[j];arr[j] = arr[j + 1];arr[j + 1] = temp;}}}// 输出中间值printf("%d\n", arr[2]);
}int main() {int t;scanf("%d", &t);while (t--) {solve();}return 0;
}
2.c++版:
#include<bits/stdc++.h>
using namespace std;
int arr[10010];
void solve() {int a, b, c;cin >> a >> b >> c;arr[1] = a;arr[2] = b;arr[3] = c;sort(arr + 1, arr + 1 + 3);cout << arr[2] << endl;return;
}
int main() {int t;cin >> t;while(t--)solve();return 0;
}
第二题:求和
思路:判断是否有两个数相加为第三个数即可
代码:
1.c语言版:
#include <stdio.h>
void solve() {int a, b, c;scanf("%d %d %d", &a, &b, &c);if (a + b == c || a + c == b || b + c == a) {printf("YES\n");} else {printf("NO\n");}
}
int main() {int t;scanf("%d", &t);while (t--) {solve();}return 0;
}
2.c++版:
#include<bits/stdc++.h>
using namespace std;
void solve() {int a, b, c;cin >> a >> b >> c;if (a + b == c || a + c == b || b + c == a) {cout << "YES\n";}else {cout << "NO\n";}return;
}
int main() {int t;cin >> t;while(t--)solve();return 0;
}
第三题:字符倒置简易版
思路:使用gets函数读入字符串(字符串中有可能含有空字符串),根据其长度倒序输出即可
代码:
1.c语言:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
char a[10000];
int b,i;
gets(a);
b=strlen(a);
for(i=b-1;i>=0;i--)
printf("%c",a[i]);
return 0;
}
2.c++:
#include<bits/stdc++.h>
using namespace std;
void solve() {string s;getline(cin,s);int l = s.size();for (int i = s.size() - 1; i >= 0; i--) {cout << s[i];}return;
}
int main() {solve();return 0;
}
第四题:求a/b
思路:除法不多说,注意(保留10位小数)即可
代码:
#include<stdio.h>
int main()
{int a,b;while(scanf("%d %d",&a,&b)!=EOF){printf("%.10lf\n",(double)a/b);}return 0;
}
第五题:这怕又是一道水题了
思路:判断长度为n的数组中的每个元素是否都比m小,若小于m的个数=n,即yes,否则no
代码:
1.c:
#include <stdio.h>
int a[100010];
void solve() {int n, m;scanf("%d %d", &n, &m); // 使用 scanf 获取 n 和 mint num = 0;// 输入数组for (int i = 1; i <= n; i++) {scanf("%d", &a[i]); // 输入数组元素}
// 计算符合条件的个数for (int i = 1; i <= n; i++) {if (m > a[i]) {num++; // 如果 m 大于 a[i],计数加 1}}
// 判断并输出结果if (num == n) {printf("yes\n");} else {printf("no\n");}
}
int main() {solve();return 0;
}
2.c++:
//}
#include<bits/stdc++.h>
using namespace std;
int a[100010];
void solve() {int n, m;cin >> n >> m;int num = 0;for (int i = 1; i <= n; i++)cin >> a[i];for (int i = 1; i <= n; i++)if (m > a[i])num++;if (num == n)cout << "yes\n";else cout << "no\n";return;
}
int main() {solve();return 0;
}
第六题:插数排序
思路:根据题目要求先进行判断,若小于最后一个数再进行插入,我们需要遍历一遍数组,找到一个合适位置进行插入(其左边的数<=要插入的数<=其右边的数)
这道题可以去学一下set
代码(未使用set):
#include <stdio.h>
int main() {int n, num, k;int arr[10010]; // 假设最多有 10000 个元素int idx = 0; // 当前数组的元素数量// 输入 n 个整数scanf("%d", &n);while (n--) {scanf("%d", &num);// 插入前检查是否已经存在,避免重复int exists = 0;for (int i = 0; i < idx; i++) {if (arr[i] == num) {exists = 1;break;}}if (!exists) {arr[idx++] = num; // 插入元素到数组}}// 输入 k 并插入scanf("%d", &k);int exists = 0;for (int i = 0; i < idx; i++) {if (arr[i] == k) {exists = 1;break;}}if (!exists) {arr[idx++] = k; // 插入 k}// 使用插入排序对数组进行排序for (int i = 1; i < idx; i++) {int key = arr[i];int j = i - 1;// 将大于 key 的元素右移while (j >= 0 && arr[j] > key) {arr[j + 1] = arr[j];j--;}arr[j + 1] = key;}// 输出集合中的元素for (int i = 0; i < idx; i++) {printf("%d ", arr[i]);}return 0;
}
使用set:
#include<bits/stdc++.h>
using namespace std;
void solve() {int n, m, k;cin >> n;set<int>s;while (n--) {cin >> m;s.insert(m);}cin >> k;s.insert(k);for (auto ss: s) {cout << ss << " ";}return;
}
int main() {solve();return 0;
}
第七题:星号图形
思路:发现规律,从第一行开始,*前面的空格数=n-当前行数,*数=2*当前行数-1
代码:
1.c:
#include <stdio.h>void solve() {int n;scanf("%d", &n); // 读入整数nfor (int i = 1; i <= n; i++) {// 打印前导空格for (int j = 1; j <= n - i; j++) {printf(" ");}// 打印星号for (int k = 1; k <= 2 * i - 1; k++) {printf("*");}// 打印换行printf("\n");}
}int main() {solve(); // 调用solve函数return 0;
}
2.c++:
#include<bits/stdc++.h>
using namespace std;
void solve() {int n;cin >> n;for (int i = 1; i <= n; i++) {for (int j = 1; j <= n - i; j++)cout << " ";for (int k = 1; k <= 2 * i - 1; k++)cout << "*";cout << endl;}return;
}
int main() {solve();return 0;
}
第八题:冠军
思路:
输入字符串,若相邻的五个字符分别为'edgnb',则将个数+1
代码:
1.c:
#include <stdio.h>
#include <string.h>void solve() {char s[100001]; // 假设最大字符串长度为 100000scanf("%s", s); // 读取字符串int l = strlen(s); // 获取字符串长度int k = 0;// 注意:循环到 l - 5,因为我们要检查每个位置是否有 'edgnb' 字符串for (int i = 0; i <= l - 5; i++) {if (s[i] == 'e' && s[i + 1] == 'd' && s[i + 2] == 'g' && s[i + 3] == 'n' && s[i + 4] == 'b') {k++; // 如果匹配,计数加 1}}printf("%d\n", k); // 输出结果
}int main() {solve(); // 调用 solve 函数return 0;
}
2.c++:
#include<bits/stdc++.h>
using namespace std;
void solve() {string s;cin >> s;int l = s.size();int k = 0;for (int i = 0; i <= l; i++) {if (s[i] == 'e' && s[i + 1] == 'd' && s[i + 2] == 'g' && s[i + 3] == 'n' && s[i + 4] == 'b')k++;}cout << k << endl;return;
}
int main() {solve();return 0;
}
相关文章:
ACM社团第一次测试题解(禁止直接复制粘贴提交)
第一题:中位数 思路: 解法一:暴力比较,两个数之间一直比较得出中位数 解法二:快排函数,数组中间值即为中位数 代码: 1.c语言版: #include <stdio.h> int arr[10010]; vo…...

redis:zset有序集合命令和内部编码
个人主页 : 个人主页 个人专栏 : 《数据结构》 《C语言》《C》《Linux》《网络》 《redis学习笔记》 文章目录 前言命令ZADDZRANGEZREVRANGEZCARDZCOUNTZPOPMAXBZPOPMAXZPOPMINBZPOPMINZRANKZSCOREZREMZREMRANGEBYRANKZREMRANGEBYSCOREZINCRBY集合间操作…...

Day107:代码审计-PHP模型开发篇MVC层RCE执行文件对比法1day分析0day验证
知识点: 1、PHP审计-MVC开发-RCE&代码执行 2、PHP审计-MVC开发-RCE&命令执行 3、PHP审计-MVC开发-RCE&文件对比 MVC 架构 MVC流程: Controller截获用户发出的请求;Controller调用Model完成状态的读写操作;Contr…...

Web服务nginx实验1访问特定目录
启动服务: 创建haha目录,并且在里面创建index.html文件,往里面写东西: 让客户端访问haha目录:(默认只会读取里面的index.html文件) 目录后面加/显示的是内容,不加则是代码࿱…...

数据结构之二叉树前序,中序,后序习题分析(递归图)
1.比较相同的树 二叉树不能轻易用断言,因为树一定有空 2.找结点值 3.单值二叉树 4.对称二叉树 5.前序遍历...

Me-LLaMA——用于医疗领域的新型开源大规模语言模型
摘要 大规模语言模型的出现是提高病人护理质量和临床操作效率的一个重大突破。大规模语言模型拥有数百亿个参数,通过海量文本数据训练而成,能够生成类似人类的反应并执行复杂的任务。这在改进临床文档、提高诊断准确性和管理病人护理方面显示出巨大的潜…...

C#-常见异常的处理方式(持续更新)
1、从网络位置加载程序集失败,默认不启用CAS策略 错误原因:使用 Assembly.LoadFile(dllPath) 加载外部Dll时,DotNET安全机制阻止加载一个本地网或互联网上的程序集。 解决方案: ①配置app.config文件,在runtime节点…...

「Mac玩转仓颉内测版2」入门篇2 - 编写第一个Cangjie程序
本篇详细介绍在Mac系统上创建首个Cangjie项目并编写、运行第一个Cangjie程序的全过程。内容涵盖项目创建、代码编写、程序运行与调试,以及代码修改后的重新运行。通过本篇,掌握Cangjie项目的基本操作,进一步巩固开发环境的配置,迈…...

注册登录学生管理系统小项目
头文件 #ifndef _LOGINLINK_H_ #define _LOGINLINK_H_ #include<myhead.h> typedef struct {int id;char name[20];int age; }stu,*Pstu; typedef struct node {union{int len;stu data;};struct node *next; }node,*Pnode; int regist(); int login(); Pnode create()…...

qt QCompleter详解
1、概述 QCompleter是Qt框架中的一个类,用于为文本输入提供自动完成功能。它可以与Qt的输入控件(如QLineEdit、QTextEdit等)结合使用,根据用户的输入实时过滤数据源,并在输入控件下方或内部显示补全建议列表。用户可以…...

YOLOv11融合特征细化前馈网络 FRFN[CVPR2024]及相关改进思路
YOLOv11v10v8使用教程: YOLOv11入门到入土使用教程 一、 模块介绍 论文链接:Adapt or Rerish 代码链接:https://github.com/joshyZhou/AST 论文速览:基于 transformer 的方法在图像恢复任务中取得了有希望的性能,因为…...
【前端知识】JS模块规范
JS模块规范 概述CommonJS 规范 代码示例AMD 规范 代码示例ES6 Module 规范 代码示例IIFE 规范 代码示例全局变量 代码示例 CommonJS 模块和 ES6 模块有什么区别?1. 语法和声明方式2. 动态和静态导入3. 循环依赖4. 默认导出和命名导出5. 文件扩展名6. 环境和应用7. 工…...
vue3展示pag格式动态图
提示:如果是webpack环境的,参考:Pag格式在vue3中的简单使用方法_pag文件-CSDN博客 下面展示的是在vite环境下配置pag 1、安装libpag npm i libpag --save 2、安装rollup-plugin-copy npm i rollup-plugin-copy --save 3、封装pag组件 下…...
代码随想录算法训练营第三十九天|Day39 动态规划
198.打家劫舍 视频讲解:https://www.bilibili.com/video/BV1Te411N7SX https://programmercarl.com/0198.%E6%89%93%E5%AE%B6%E5%8A%AB%E8%88%8D.html 思路 #define max(a, b) ((a) > (b) ? (a) : (b)) int rob(int* nums, int numsSize) {if(numsSize 0){ret…...

qt QMovie详解
1、概述 QMovie 是 Qt 框架中用于处理动画文件的类。它支持多种动画格式,包括 GIF 和一些常见的视频格式(尽管对视频格式的支持依赖于底层平台)。QMovie 类主要用于在 QLabel 或 QGraphicsView 等控件中显示动画。通过加载动画文件ÿ…...
数据集整理
系列博客目录 文章目录 系列博客目录1.Visual Genome数据集2.COCO数据集3.Flickr30k数据集10.集合多个数据集的网站 1.Visual Genome数据集 官网链接:https://homes.cs.washington.edu/~ranjay/visualgenome/index.html Visual Genome数据集梳理 Visual Genome数据…...

认证授权基础概念详解
目录 认证 (Authentication) 和授权 (Authorization)的区别是什么? RBAC 模型了解吗? 什么是 Cookie ? Cookie 的作用是什么? 如何在项目中使用 Cookie 呢? 如何在 Spring Boot 中创建和读取 Cookie 创建 Cookie Cookie 到期日期 安全…...
美国地址生成器站点
推荐一:fakexy 官网地址:https://www.fakexy.com 推荐二:好维持官网地址: https://www.dizhishengcheng.com 官网除了支持生成美国地址信息外,还支持生成英国、加拿大、日朩、澳大利亚、德国、法国、意大利、西班牙、巴…...

微信4.0大版本升级跨平台支持界面全面改版
微信4.0公测版现已正式发布,作为微信的大版本升级,新版微信基于全新架构开发,跨平台支持Windows和MAC系统,界面也全面改版,聊天宝也第一时间适配微信4.0,为广大客户提供快捷回复支持 前言 微信4.0公测版现…...

不想贴秋膘?正确打开秋冬运动姿势
这个秋天想要轻装上阵,想健康入秋更要美美入冬怎么破?这期把正确打开秋冬姿势一次性告诉你哦~ 天气变凉,脂肪可要燃起来~想要无痛入秋,最重要的动起来!每天都抽出一点时间去运动一下,不光让身体燃起来&…...
【Java学习笔记】Arrays类
Arrays 类 1. 导入包:import java.util.Arrays 2. 常用方法一览表 方法描述Arrays.toString()返回数组的字符串形式Arrays.sort()排序(自然排序和定制排序)Arrays.binarySearch()通过二分搜索法进行查找(前提:数组是…...

【HarmonyOS 5.0】DevEco Testing:鸿蒙应用质量保障的终极武器
——全方位测试解决方案与代码实战 一、工具定位与核心能力 DevEco Testing是HarmonyOS官方推出的一体化测试平台,覆盖应用全生命周期测试需求,主要提供五大核心能力: 测试类型检测目标关键指标功能体验基…...
【android bluetooth 框架分析 04】【bt-framework 层详解 1】【BluetoothProperties介绍】
1. BluetoothProperties介绍 libsysprop/srcs/android/sysprop/BluetoothProperties.sysprop BluetoothProperties.sysprop 是 Android AOSP 中的一种 系统属性定义文件(System Property Definition File),用于声明和管理 Bluetooth 模块相…...

令牌桶 滑动窗口->限流 分布式信号量->限并发的原理 lua脚本分析介绍
文章目录 前言限流限制并发的实际理解限流令牌桶代码实现结果分析令牌桶lua的模拟实现原理总结: 滑动窗口代码实现结果分析lua脚本原理解析 限并发分布式信号量代码实现结果分析lua脚本实现原理 双注解去实现限流 并发结果分析: 实际业务去理解体会统一注…...
Typeerror: cannot read properties of undefined (reading ‘XXX‘)
最近需要在离线机器上运行软件,所以得把软件用docker打包起来,大部分功能都没问题,出了一个奇怪的事情。同样的代码,在本机上用vscode可以运行起来,但是打包之后在docker里出现了问题。使用的是dialog组件,…...

Golang——6、指针和结构体
指针和结构体 1、指针1.1、指针地址和指针类型1.2、指针取值1.3、new和make 2、结构体2.1、type关键字的使用2.2、结构体的定义和初始化2.3、结构体方法和接收者2.4、给任意类型添加方法2.5、结构体的匿名字段2.6、嵌套结构体2.7、嵌套匿名结构体2.8、结构体的继承 3、结构体与…...

day36-多路IO复用
一、基本概念 (服务器多客户端模型) 定义:单线程或单进程同时监测若干个文件描述符是否可以执行IO操作的能力 作用:应用程序通常需要处理来自多条事件流中的事件,比如我现在用的电脑,需要同时处理键盘鼠标…...

android RelativeLayout布局
<?xml version"1.0" encoding"utf-8"?> <RelativeLayout xmlns:android"http://schemas.android.com/apk/res/android"android:layout_width"match_parent"android:layout_height"match_parent"android:gravity&…...

Cilium动手实验室: 精通之旅---13.Cilium LoadBalancer IPAM and L2 Service Announcement
Cilium动手实验室: 精通之旅---13.Cilium LoadBalancer IPAM and L2 Service Announcement 1. LAB环境2. L2公告策略2.1 部署Death Star2.2 访问服务2.3 部署L2公告策略2.4 服务宣告 3. 可视化 ARP 流量3.1 部署新服务3.2 准备可视化3.3 再次请求 4. 自动IPAM4.1 IPAM Pool4.2 …...

【深度学习新浪潮】什么是credit assignment problem?
Credit Assignment Problem(信用分配问题) 是机器学习,尤其是强化学习(RL)中的核心挑战之一,指的是如何将最终的奖励或惩罚准确地分配给导致该结果的各个中间动作或决策。在序列决策任务中,智能体执行一系列动作后获得一个最终奖励,但每个动作对最终结果的贡献程度往往…...