3.25 复试练习

news2026/3/29 7:56:09
OJ改错填空strcpy--strcpy(dest, src); // 将src复制到deststrcmp--strcmp(s1, s2);返回值含义0两个字符串相等 0s1 大于 s2 0s1 小于 s2矩阵质因数问题描述将一个正整数N(1N32768)分解质因数。例如输入90打印出902*3*3*5。输入说明输入一个正整数输出说明按照范例输出。其中的质因数的输出顺序按照从小到大的顺序。如果输入的整数本身是质数则输出形式为33输入范例66输出范例662*3*11代码#includebits/stdc.h using namespace std; int main() { int n; cinn; coutn; bool firsttrue; for(int i2;in;i) { while(n%i0) { if(first) { couti; firstfalse; } else cout*i; n/i; } } return 0; }谁是老二问题描述一维数组中存储不超过100个整型数据请找出其中第二大的元素输出这些元素的值以及它们的下标。注意由于元素值可能相同因此具有最大值的元素个数可能不只一个第二大的元素是比它们小的那些元素。输入说明用户可输入多组数据每组数据由两行组成第一行数组元素的个数n第二行n个数组元素由空格分隔输出说明对于每组输入输出一行包含第二大的元素的值以及它们的下标都是整数整数之间以空格分隔。如果有多个下标则下标按从小到大的顺序输出。每行的开头与结尾无多余空格。每组输出占一行。如果不存在第二大的元素则输出none不包含引号输入范例32 5 4101 3 5 2 4 3 7 5 7 752 2 2 2 2输出范例4 25 2 7none代码#includebits/stdc.h using namespace std; int main() { int n; while(cinn) { vectorint arr(n); for(int i0;in;i) cinarr[i]; int max1arr[0];//找到最大值 for(int i1;in;i) { if(max1arr[i]) { max1arr[i]; } } int max2INT_MIN; bool foundfalse; for(int i0;in;i) { if(max1arr[i]arr[i]max2) { max2arr[i]; foundtrue; } } if(!found) coutnoneendl; else { coutmax2; for(int i0;in;i) { if(max2arr[i]) cout i; } coutendl; } } return 0; }骑士斗恶龙--贪心问题描述你的王国里有一条n个头的恶龙你希望雇佣一些骑士把它杀死也就是砍掉所有的头。村里有m个骑士可以雇佣一个能力值为 x 的骑士可以砍掉恶龙一个直径不超过 x 的头且需要报酬 x 个金币。如何雇佣骑士才能砍掉恶龙所有的头并且支付最小的金币注意一个骑士只能砍一个头并且仅能被雇佣1次。输入说明输入包含多组测试数据。每组测试数据的第一行输入两个整数n和mm和n都在1到20000 之间, n表示龙拥有的头的数目 , m表示王国中的骑士数。接下来的 n 个整数为龙头的直径再接下来m个整数为骑士的能力值。输出说明对于每组测试数据, 输出一行包含国王杀死龙需要支付的最低数量的金币。如果骑士不可能杀死龙, 输出一行“Lose!”输出不包含引号输入范例2 3547842 15510输出范例11Lose!个人总结排序将龙头直径和骑士能力都从小到大排序贪心匹配用能力最小的骑士去砍能砍的最小龙头双指针一个指向龙头一个指向骑士累加金币每匹配成功累加该骑士的能力值代码#includebits/stdc.h using namespace std; int main() { int n,m; while(cinnm) { int num[n];//dragon int power[m]; for(int i0;in;i) cinnum[i]; for(int i0;im;i) cinpower[i]; sort(num,numn); sort(power,powerm); if(nm) { coutLose!endl; continue; } int money0; int i0,j0; while(injm) { if(power[j]num[i]) { moneypower[j]; i; j; } else { j; } } if(in) coutmoneyendl; else coutLose!endl; } return 0; }蛇形方阵问题描述输出一个如下的n阶方阵。例如若读入11则输出输入说明输入一个正整数nn20)表示需要输出n阶方阵。输出说明共输出n行n列每个整数占4位不足4位则左边补空格。每行的最后无空格。无多余空行。输入范例11输出范例1 2 3 4 5 6 7 8 9 10 1122 21 20 19 18 17 16 15 14 13 1223 24 25 26 27 28 29 30 31 32 3344 43 42 41 40 39 38 37 36 35 3445 46 47 48 49 50 51 52 53 54 5566 65 64 63 62 61 60 59 58 57 5667 68 69 70 71 72 73 74 75 76 7788 87 86 85 84 83 82 81 80 79 7889 90 91 92 93 94 95 96 97 98 99110 109 108 107 106 105 104 103 102 101 100111 112 113 114 115 116 117 118 119 120 121代码#includebits/stdc.h using namespace std; int main() { int n; cinn; int arr[n][n]; int num1; for(int row0;rown;row) { if(row%20) { for(int j0;jn;j) { arr[row][j]num; } } else { for(int jn-1;j0;j--) arr[row][j]num; } } for(int i0;in;i) { for(int j0;jn;j) { coutsetw(4)arr[i][j];//setw默认右对齐左边补0如果要左对齐添加leftsetw(4) } coutendl; } return 0; }单词统计问题描述从键盘上输入一个整数N并输入N行字符串。每行字符串都包含多个单词单词之间以空格分开。请输出每行字符串中单词的个数。说明以空格分隔开的任何字符串都认为是单词。比如“Im”认为是一个单词输入说明首先输入一行包含一个整数N表示共测试N组数据。后面接着输入N行每行为一个字符串字符串长度小于等于50。每个字符串中包含多个单词单词之间以空格分隔。输出说明对每组测试数据你的程序需要向标准输出文件通常为启动该程序的终端依次输出字符串中单词的个数。每个输出占一行在行首和行尾不要输出多余的空格。在所有数据前后以及两组数据之间不要输出多余的空行。输入范例3i am a boy.byebyetoyouhaha , meet you again!输出范例415总结stringstream--创建 stringstream 对象 // 方式1空对象 stringstream ss1; // 方式2用字符串初始化 stringstream ss2(hello world); // 方式3先创建后赋值 stringstream ss3; ss3 hello world; --向 stringstream 写入数据 stringstream ss; ss 123; ss ; ss 45.67; ss hello; cout ss.str() endl; // 输出: 123 45.67 hello --从 stringstream 读取数据 stringstream ss(123 45.67 hello); int a; double b; string c; ss a b c; cout a endl; // 123 cout b endl; // 45.67 cout c endl; // hello -- 方法 作用 示例 str() 获取字符串内容 string s ss.str(); str(string) 设置字符串内容 ss.str(hello); 从流中读取 ss num; 向流中写入 ss hello; clear() 清除错误状态 ss.clear();代码#includebits/stdc.h using namespace std; int main() { int n; cinn; cin.ignore(); string s; while(n--) { getline(cin,s); stringstream ss(s); string word; int count0; while(ssword) { count; } coutcountendl; } return 0; }转换成十进制问题描述编写一个程序将一个2~20以内任意进制数转换成十进制。这些数据由数字0-9大写字母A-J组成其中A10B11……J19。例如16进制数5A转换为十进制数90905*1610*1。输入说明程序需要输入多组数据每组数据一行每行有两个数用空格隔开分别表示当前进制数和被转换的数据。输入数据十进制数大小不会超过10000例如16 5A 表示将16进制数5A转换成10进制数。输出说明对于每行输入数据需输出一个结果。每个结果为一个十进制的数。例如16 5A需输出结果90。输入范例16 5A2 1111111输出范例90127代码#includebits/stdc.h using namespace std; int todecimal(string s,int n) { int res0; for(int is.length()-1;i0;i--) { if(s[i]9s[i]0) res(s[i]-0)*pow(n,s.length()-1-i); else res(s[i]-A10)*pow(n,s.length()-1-i); } return res; } int main() { int n; string s; while(cinns) { couttodecimal(s,n)endl; } return 0; }十进制转其他进制问题描述编写一个程序将一个十进制数转换成任意的2~20以内的其他进制数。这些数据由数字0-9字母A-J组成其中A10B11……J19。例如90转换为16进制数为5A905*1610*1。输入说明程序需要输入多组数据每组数据一行每行有两个数用空格隔开分别表示十进制数和转换成的进制数。输入数据不会超过10000例如90 16 表示将90转换成16进制数。输出说明对于每行输入数据需输出一个结果。每个结果包含为一个20以内的进制的数。输出的字母都为大写字母。例如90 16需输出结果5A。输入范例127 290 16输出范例11111115A代码#includebits/stdc.h using namespace std; string decimaltoelse(int decimal, int n) { if(decimal 0) return 0; string res ; int temp decimal; while(temp 0) { int remainder temp % n; if(remainder 10) { res char(0 remainder); } else { res char(A (remainder - 10)); } temp / n; } reverse(res.begin(), res.end()); return res; } int main() { int decimal, n; while(cin decimal n) { cout decimaltoelse(decimal, n) endl; } return 0; }最大相同子串问题描述输入两个字符串,获取两个字符串中最长相同子串并输出。如果有多个相同子串则输出按ASCII排序最小的那个“最长相同子串”。如果无相同子串则输出空字符串即空行。输入说明输入多组测试数据每组测试数据包含两行。每行包含一个字符串字符串中无空格也无空字符串。输出说明对于每组测试数据输出最长子串。如果最长子串为空则输出一个空行。每组输出占一行行首与行尾无多余空格也无多余空行。输入范例abcded123456aabbccabcdaa1234abcdabcdabcdabcda输出范例1234abcda代码#includebits/stdc.h using namespace std; string longeststring(string s1, string s2) { string result ; int maxLen 0; // 枚举所有可能的子串 for(int i 0; i s1.length(); i) { for(int j i; j s1.length(); j) { string sub s1.substr(i, j - i 1); // 检查子串是否在 s2 中 if(s2.find(sub) ! string::npos) { if(sub.length() maxLen) { maxLen sub.length(); result sub; } else if(sub.length() maxLen sub result) { result sub; // ASCII 较小的 } } } } return result; } int main() { string s1, s2; while(cins1s2) { cout longeststring(s1, s2) endl; } return 0; }冰雹数问题描述任意给定一个大于1的正整数N如果是偶数执行 N / 2如果是大于1的奇数执行 N * 3 1生成的新的数字再执行同样的动作循环往复。通过观察发现这个数字会一会儿上升到很高一会儿又降落下来。就这样起起落落的但最终必会落到“1”这有点像小冰雹粒子在冰雹云中翻滚增长的样子。比如N99,28,14,7,22,11,34,17,52,26,13,40,20,10,5,16,8,4,2,1可以看到N9的时候这个“小冰雹”最高冲到了52这个高度。输入一个整数M请输出一个正整数表示所有不大于M的数字N中经过冰雹数变换过程中最高冲到了多少。注意从2到M这M-1个数字中每一个数字N都能得到一系列冰雹数需要求得所有冰雹数的最大值。输入说明从标准输入设备输入一个正整数M1M10000输出说明输出一个正整数表示结果。输入范例10输出范例52代码#includebits/stdc.h using namespace std; int maxbingbao(int n) { vectorint arr; int tempn; arr.push_back(temp); while(temp!1) { if(temp%20) { temptemp/2; arr.push_back(temp); } else { temptemp*31; arr.push_back(temp); } } int maxarr[0]; for(int i1;iarr.size();i) { if(maxarr[i]) maxarr[i]; } return max; } int main() { int M; cinM; vectorint res(M-1); for(int N2;NM;N) { res[N-2]maxbingbao(N); } int maxres[0]; for(int i1;ires.size();i) { if(maxres[i]) maxres[i]; } coutmax; return 0; }小数第n位问题描述我们知道整数做除法时有时得到有限小数有时得到无限循环小数。如果我们把有限小数的末尾加上无限多个0它们就有了统一的形式。本题的任务是在上面的约定下求整数除法小数点后的第n位开始的3位数。输入说明一行三个整数a b n用空格分开。a是被除数b是除数n是所求的小数后位置0a,b,n1000000000输出说明一行3位数字表示a除以b小数后第n位开始的3位数字。比如输入1 8 3则输出500输入范例282866 999000 6输出范例914代码#include iostream using namespace std; int main() { int a, b, n; cin a b n; int remainder a % b;//去掉整数部分留下余数 // 移动到第 n 位 for (int i 0; i n - 1; i) { remainder (remainder * 10) % b; } // 获取第 n 位开始的三位数字 for (int i 0; i 3; i) { remainder (remainder * 10); int digit remainder / b; cout digit; remainder remainder % b; } cout endl; return 0; }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2455472.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…

网络编程(Modbus进阶)

思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…