2026.3.7oj总结 📅 发布时间:2026/7/11 4:31:57 👁️ 浏览次数: 1.求n天后的日期问题描述写一个函数传入年月日计算它的第二天并返回该日期。由用户输入年月日和一个n值使用前述函数计算该日期加n天的日期为多少。输入说明输入year,month,day和n共4个正整数以空格分隔。n的值不超过2000。输出说明输出计算得到的结果年月日共3个正整数整数之间以一个空格分隔行首与行尾无多余空格。总结1.判断平闰年2.判断每个月的天数3.计算下一天的日期。如果加了一天以后天数大于了当前月的天数就设置为下个月的一号若此时month12就设置为1月了4.循环加n次计算n天以后的日期#includeiostreamusing namespace std;bool isLeap(int year) {if (year % 4 0 year % 100 ! 0 || year % 400 0) {return true;}else return false;}int dayInmonth(int year, int month) {switch (month) {case 1:case 3:case 5:case 7:case 8:case 10:case 12:return 31;case 4:case 6:case 9:case 11:return 30;case 2:if (isLeap(year)) return 29;else return 28;}}void nextDay(int year, int month, int day) {day;if (day dayInmonth(year,month)) {day 1;month;if (month 12) {month 1;year;}}}int main() {int year, month, day, n;cin year month day n;for (int i 0;i n;i) {nextDay(year, month, day);}cout year month day;}2.菱形输出问题描述明明这次又碰到问题了给定一个正整数N明明的爸爸让他输出一个以Z开始的菱形以后依次为YX…比如当N等于1的时候输出图形Z当N等于2的时候输出图形Y前没有空格Z、X和W前一个空格ZY XW当N等于3的时候输出图形Z前两个空格Y、X前一个空格W前没有空格......ZY XW VU TS明明发现当N很大的时候就不是很容易了所以找到了你希望你编写一个程序帮助他明明的问题可以归结为输入一个正整数N输出一个以Z开始的菱形以后依次为YX…。请尝试定义函数该函数的功能是输出以上图形的一行。输入说明你写的程序要求从标准输入设备中读入测试数据作为你所写程序的输入数据。标准输入设备中有多组测试数据每组测试数据仅占一行每行仅包括一个正整数n1≤n≤7。每组测试数据与其后一组测试数据之间没有任何空行第一组测试数据前面以及最后一组测试数据后面也都没有任何空行。输出说明对于每一组测试数据你写的程序要求计算出一组相应的运算结果并将这一组运算结果作为你所写程序的输出数据依次写入到标准输出设备中。每组输出一个以Z开始的菱形具体格式参照样例输出。每组运算结果与其后一组运算结果之间有一个空行最后一组运算结果之后没有空行。 注通常显示屏为标准输出设备。总结函数1获取下一个字母函数2每次输出一行考虑首个空格是否有两个字母如果有第一个和第二个中间有几个空格函数3则输出这个菱形分为上半部分和下半部分打印分为顶点和其他几行下半部分直接映射到上半部分简化思维量。#includeiostreamusing namespace std;int charIndex 0;char nextChar() {//获取下一个字母return Z - charIndex;}//输出一行void printLine(int firstspace, bool hastwo, int midspace) {for (int i 0;i firstspace;i) {cout ;}char ch1 nextChar();cout ch1;if (hastwo) {for (int i 0;i midspace;i) {cout ;}char ch2 nextChar();cout ch2;}cout endl;}void printDiamond(int n) {charIndex 0;//重置字母索引int totalline 2 * n - 1;//上半部分for (int i 0;i n;i) {int firstspace n - i - 1;if (i 0)//顶点行printLine(firstspace, false, 0);else {int midspace 2 * i - 1;printLine(firstspace, true, midspace);}}//下半部分for (int i n;i 2 * n - 1;i) {int j totalline - i - 1;int firstspace n - j - 1;//对应到上半部分if (j 0) {printLine(firstspace, false, 0);}else {int midspace 2 * j - 1;printLine(firstspace, true, midspace);}}}int main() {int n;bool firstcase true;while (cin n) {if (!firstcase) {cout endl;}firstcase false;printDiamond(n);}}3.三角形的个数问题描述明明的爸爸常用玩游戏的方法来激发明明对几何学的兴趣。这天明明的爸爸和明明又玩起了有关三角形的游戏。明明爸爸对明明说“我们能不能构造一个周长为15的三角形” “太简单了”明明说道“三条边长都是5的三角形它的周长不就是15吗” “明明真聪明算得真快。”明明爸爸接着说“可是我不想要三条边都相等的三角形哪” 明明大眼睛一转说道“那也好办啊我只要对这个等边三角形的一条边减去一个数再把这个数加到另一条边上就可以得到一个新的周长为15的三角形。例如在第一条边上减去1在第二条边上加上1这样不就可以得到一个周长为15的新的三角形了吗” “哇明明太聪明了”爸爸称赞道。“对如果把第一条边上减去的1加到第三条边上去不就又可以得到周长为15的另外一个新三角形了吗”爸爸模仿着明明的方法和语气。 “不对呀爸爸。你构造的三角形和我构造的三角形是同样的三角形。爸爸你看我的三角形三条边分别长为4、6、5而你的三角形三条边分别长为4、5、6将三条边按其边长排序后都得到4、5、6所以它们是同一个三角形不是两个不同的三角形。” “啊还是明明聪明。那还有没有其他周长为15的三角形吗” “当然有啦。三条边边长分别为4、4、7的三角形它的周长就是15不过你可能不喜欢它因为它有两条边的边长相等。” 明明和爸爸玩了一下午这样的三角形游戏明明一共又构造了另外两个他认为他爸爸喜欢的三角形即边长分别为2、6、7的三角形和边长分别为3、5、7的三角形。晚上明明躺在床上还在思考如果周长不是15而是90那么爸爸喜欢的三角形有多少个呢明明的问题可以归结为根据一个正整数n3 ≤ n ≤ 100要求统计出同时满足下列条件的三角形的个数边长都是整数。周长为n。边长两两不相等。总结为了保证不重复可以设置第一个边为最小值第二个边中间值第三个边最大#includeiostreamusing namespace std;int main() {int n;while (cin n) {int count 0;for (int i 1;i n / 3;i){for (int j i 1;j (n - i) / 2;j) {int k n - i - j;if (k j i j k) {count;}}}cout count endl;}}4.素数问题描述明明的爸爸是一位数学家明明受他爸爸的影响从小就喜欢数学经常向他爸爸学习或请教数学问题。一天明明问他爸爸什么是素数明明的爸爸回答说“首先素数都是大于1的自然数其次素数是只能被1和其本身整除的数。例如‘3’这个数它只能被1和3这两个整数整除因此‘3’就是素数但是‘4’就不是素数因为4除了能被1和4整除外还能被2整除因此‘4’就不是一个素数。”明明对于爸爸的回答很满意也很快明白了素数的定义。于是明明的爸爸就问明明“明明你现在知道了什么是素数那我现在给你一个整数区间你能告诉我在这个区间里一共有多少个素数吗” 例如一个区间为[110]则在这个区间里一共有2、3、5、7总共4个素数。 明明想了想觉得这很简单就说“没问题。”于是明明爸爸就给了明明一个很大的区间这下明明有点犯难了由于区间太大一个一个算过了会很花时间。聪明的明明想到了你你总是乐于助人。明明想让你帮他写一个程序用来计算在某一个整数区间内一共有多少个素数。 明明的问题可以归结为给你一个整数区间求出在这个区间里共有多少个素数。#includeiostream#includecmathusing namespace std;bool isZhi(int n) {if (n 2) return false;if (n 2) return true;if (n % 2 0) return false;int limit sqrt(n);for (int i 3;i limit;i) {if (n % 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 (isZhi(i)){count;}}cout count endl;}}5.杨辉三角问题描述还记得中学时候学过的杨辉三角吗基本的特征是前提端点的数为1.每个数等于它上方两数之和。每行数字左右对称由1开始逐渐变大。第n行的数字有n项。总结二维数组先设置每行的第一行和最后一个为0 然后计算每一个数字等于上一行的数字前一个数字。注意输出的时候只用输出有效的数。#includeiostreamusing namespace std;int main() {int T;cin T;bool firstcase true;while (T--) {if (!firstcase) {cout endl;}firstcase false;int n;cin n;int arr[20][20] {0};for (int i 0;i n;i) {arr[i][0] 1;arr[i][i] 1;for (int j 1;j i;j) {arr[i][j] arr[i - 1][j - 1] arr[i - 1][j];}}for (int i 0;i n;i) {for (int j 0;j i;j) {//注意i0时要不然第一行没有输出cout arr[i][j];if (j i) cout ;//行尾不加空格}cout endl;//这一行结束}}}6.问题描述从键盘上输入一个整数N按以下规律输出一个(2N1)*(2N1)的矩阵对角线的值为1上半三角区域值为2下半三角区域值为3左半三角区域的值为4右半三角区域的值为5。总结注意区间重叠 上三角ijij2*n;下三角:ijij2*n;左三角ijij2*n;右三角ijij2*n;#includeiostreamusing namespace std;int main() {int n;while (cin n) {int arr[100][100];int total 2 * n 1;for (int i 0;i total;i) {for (int j 0;j total;j) {if (i j || i j 2*n) {arr[i][j] 1;}else if (ijij2*n) {arr[i][j] 2;}else if (ij ij2*n) {arr[i][j] 3;}else if (i j i j 2 * n) {arr[i][j] 4;}else if (ijij2*n) {arr[i][j] 5;}}}for (int i 0;i total;i) {for (int j 0;j total;j) {cout arr[i][j] ;if (j total-1) cout ;}cout endl;}}}7.发牌问题描述编制一个模拟发牌的程序。有编号为1234四个人将一付去掉大小怪的扑克按照如下顺序排列梅花c0-c12方块d0-d12红桃h0--h12黑桃s0-s12然后按照1234四个人的顺序发牌问最后每个人手上的牌有哪些。总结首先先存储牌的顺序再按照题目要求发牌#includeiostream#includevector#includestringusing namespace std;int main() {vectorstring card;char huase[4] { c,d,h,s };for (int i 0;i 4;i) {for (int j 0;j 13;j) {card.push_back(string(1, huase[i]) to_string(j));}}vectorstring hand[5];for (int i 0;i 52;i) {int person i % 4 1;hand[person].push_back(card[i]);}int p;while (cin p) {for (int i 0;i hand[p].size();i) {string card hand[p][i];cout card[0] card.substr(1);if (i ! hand[p].size() - 1) cout ;}cout endl;}}8.数字金字塔问题描述考虑在下面被显示的数字金字塔第n行有n列。写一个程序来计算从最高点开始在底部任意处结束的路径经过数字的和的最大。每前进一步可以走到它的正下方或者右下方往下一行、往右一列的位置。73 88 1 02 7 4 44 5 2 6 5在上面的样例中,从7 到 3 到 8 到 7 到 5 的路径产生了最大和:30总结#includeiostream#includevector#includestring#includealgorithmusing namespace std;int main() {int n;cin n;vectorvectorint a(n);for (int i 0;i n;i) {a[i].resize(i 1);for (int j 0;j i;j) {cin a[i][j];}}for (int i 1;i n;i) {for (int j 0;j i;j) {if (j0) {a[i][j] a[i][j] a[i-1][j ];}else if (i j) {a[i][j]a[i][j] a[i - 1][j - 1];}else {a[i][j] a[i][j] max(a[i - 1][j - 1] ,a[i - 1][j]);}}}int sum 0;for (int j 0;j n;j) {sum max(sum, a[n - 1][j]);}cout sum endl;}
Prompt、Agent、Function Call、Skill、MCP,傻傻分不清楚? 前言 最近AI越来越火了。 我发现里面有很多概念有些小伙伴有点分不清楚,比如:Prompt、Agent、Function Call、Skill、MCP等。 今天这篇文章专门跟大家一起聊聊这个话题,希望对你会有所帮助。 更多项目实战在项目实战网:Java突… 2026/7/10 12:23:14
告别多线程开销:用 I/O 多路转接与 select 突破并发瓶颈 在传统的网络编程中,如果服务器想要同时服务 100 个客户端,通常的做法是“来一个客户端,就开一个线程或进程”。但线程的创建、销毁和上下文切换极其消耗系统资源,当并发量达到上万时,服务器就会崩溃(即著名的 C10K 问题)。 想要在单线程下同时处理成千上万个连接,我们… 2026/7/3 3:06:58
收藏!亚马逊又裁员了!程序员/小白必看:AI大模型才是破局关键 近日,亚马逊官方正式官宣一则重磅消息:将裁减1.6万名企业员工,这一数字再次引发科技圈和职场人的广泛关注,尤其是对于正在打拼的程序员、刚入门的技术小白来说,更值得警惕和深思。图片来源网络,侵删 说实话… 2026/7/9 16:41:53
AI自我改进机制:从理论到工程实践的全流程实现 最近在AI工程实践中,很多开发者都面临一个共同挑战:如何让AI系统不仅能够执行任务,还能持续自我改进和优化。这个问题在构建复杂的AI Agent系统时尤为突出,特别是当我们需要AI具备长期学习能力和适应性时。本文将深入探讨AI自我改… 2026/7/11 4:28:09
CesiumJS 1.107 昼夜交替进阶:3种光照方案对比与5000倍速动画性能实测 CesiumJS 1.107 昼夜交替进阶:3种光照方案对比与5000倍速动画性能实测当数字地球在浏览器中缓缓旋转时,最令人着迷的莫过于光影流转间展现的昼夜交替效果。这种动态视觉不仅关乎美学表现,更是地理信息系统(GIS)应用中时… 2026/7/11 4:28:09
嵌入式信号稳定控制:上拉下拉电阻配置与PIC18微控制器应用 1. 项目背景与核心需求在嵌入式系统设计中,信号状态的稳定控制是基础中的基础。我最近在做一个工业控制项目时,遇到了一个典型的信号稳定性问题:需要可靠地控制DTH-08模块与PIC18LF45K22微控制器之间的通信信号状态。这个场景让我深刻体会到上… 2026/7/11 4:26:09
AI自动骨骼绑定实战:从原理到UniRig应用全解析 1. 项目概述:当AI遇见3D骨骼绑定如果你是一名3D美术师、独立游戏开发者,或者只是对角色动画感兴趣的爱好者,那么“骨骼绑定”这个词对你来说,可能意味着一段漫长、枯燥且需要高度专业技巧的“折磨”。传统的角色绑定流程ÿ… 2026/7/11 4:26:09
C++ 递归与非递归 3 种进制转换实现:从《信息学奥赛一本通》1161题出发 C 进制转换实战:递归与迭代的三种实现方案深度解析在信息学竞赛和日常编程中,进制转换是一个基础但极其重要的技能点。无论是处理数据存储、网络协议还是加密算法,理解不同进制间的转换原理都至关重要。本文将以《信息学奥赛一本通》1161题&q… 2026/7/11 4:22:08
揭秘船舶安全“守护神”:智慧港口航道入侵与漂移异常AI检测算法大起底 港口航道通航安全,从来不是平稳常态,而是时刻暗藏变数的高危战场。航道作为船舶进出港的唯一核心通道,是港口物流运转的生命线。日常作业中,船舶偏航漂移、无关船只非法入侵、锚泊越界、违规横穿航道等异常行为频发。加之雾天、夜… 2026/7/11 4:22:08
5分钟搞定Kodi字幕难题:智能字幕插件让你追剧无忧 [特殊字符] 5分钟搞定Kodi字幕难题:智能字幕插件让你追剧无忧 🎬 【免费下载链接】zimuku_for_kodi Kodi 插件,用于从「字幕库」网站下载字幕 项目地址: https://gitcode.com/gh_mirrors/zi/zimuku_for_kodi 还记得那个深夜吗?你刚下载… 2026/7/11 0:00:11
工业信号干扰处理与FOD4216光耦应用实战 1. 工业环境中的信号干扰挑战在工业自动化领域,信号采集的准确性直接关系到整个控制系统的可靠性。典型的工业现场充斥着各种干扰源:大功率电机启停产生的电磁干扰、变频器工作产生的高频噪声、继电器触点火花放电,以及长距离传输引入的共模干… 2026/7/11 0:00:11
OpenHarmony 完整项目工程整合规范 + 模块化分层架构(API23+ 标准企业级结构) 摘要前面系列教程覆盖了 ArkUI 组件、路由、生命周期、本地存储、网络请求、Ability 底层全套基础能力,本篇统一梳理标准工程目录分层、模块化拆分、代码复用规范、全局工具统一管理、项目打包权限配置、常见工程报错统一解决方案,形成可直接用于课程设计… 2026/7/11 0:00:11
6个月转型AI工程师:实战路径与核心技能 1. 项目概述:6个月转型AI工程师的可行性路径在2023年大模型技术爆发的背景下,AI工程师岗位需求同比增长217%(LinkedIn数据)。不同于传统算法工程师需要3-5年培养周期,现代AI工程师更侧重工程化落地能力。我在硅谷科技公… 2026/7/7 11:26:57
TPAFE0808与PIC18F87K22的多通道信号采集方案 1. 项目背景与核心需求在工业自动化、医疗设备和科研仪器等领域,多通道信号采集与系统监测是基础且关键的技术需求。传统方案往往面临通道数量不足、信号调理复杂、系统集成度低等问题。TPAFE0808作为一款8通道模拟前端芯片,与PIC18F87K22微控制器的组合… 2026/7/8 20:15:17
STC3115与PIC18LF26K80构建高精度电池管理系统 1. STC3115与PIC18LF26K80在电池管理系统中的核心价值在现代电子设备中,电池管理系统(BMS)的重要性不亚于设备的核心处理器。STC3115作为一款高精度电池电量监测IC,与PIC18LF26K80微控制器的组合,构成了一个既能精确监控又能智能管理的完整解… 2026/7/8 14:25:08