算法笔记 02 —— 入门模拟
本系列为胡凡编著的算法笔记当中代码部分的精简版整理,笔者也在同时准备Leetcode刷题和实习面试,希望为有一定编码和数据结构基础的同学提供一份系统型的参考,以方便遗忘时的算法查阅、期末复习总览以及C++学习参照。
目录
01 简单模拟
Ⅰ害死人不偿命的(3*n+1)思想
Ⅱ 挖掘机技术哪家强
02 查找元素 —— 找 x
03 图形输出 —— 跟奥巴马一起编程
04 日期处理 —— 日期差值
05 进制转换
Ⅰ D 进制的 A+B
06 字符串处理
Ⅰ 回文串
Ⅱ 说反话
01 简单模拟
Ⅰ害死人不偿命的(3*n+1)思想
#include <iostream>
using namespace std;int CalCallatz(int n){int k = 0;while(n != 1){if(n % 2 == 0){n /= 2;}else{n = (n * 3 + 1) / 2;}k++;}return k;
}int main(){int n;scanf("%d", &n);int count;count = CalCallatz(n);printf("%d", count);return 0;
}
Ⅱ 挖掘机技术哪家强
#include <iostream>
using namespace std;int main(){int N;scanf("%d", &N);//输入名单int school[100000] = {0};int k, score, flag1 = 0;for(int i = 0; i < N; i++){scanf("%d%d", &k, &score);school[k] += score;if(k > flag1) flag1 = k; //flag1记录学校个数}//查找最大int maxScore = 0, flag2 = 0;for(int i=0; i<=flag1; i++){if(school[i] > maxScore){maxScore = school[i];flag2 = i; //flag2记录最大学校编号}}printf("%d %d", flag2, maxScore);return 0;
}
02 查找元素 —— 找 x
#include <iostream>
using namespace std;
const int MAXN = 210;int main(){int n, x, num[MAXN] = {0};while(scanf("%d", &n) != EOF){ //1 输入多组数据for(int i=0; i<n; i++){scanf("%d", &num[i])}scanf("%d", &x);for(int i=0; i<n; i++){if(num[i] == x){printf("%d\n", i);break; //2 节省查找时间}}if(i == n){printf("-1\n") //3 没找到也要答复一下}}return 0;
}
03 图形输出 —— 跟奥巴马一起编程
#include <iostream>
using namespace std;int main(){int N;char c;scanf("%d %c", &N,,&c); //1 注意%d和%c之间的空格for(int i=0; i<N; i++){printf("%c", c);}printf("\n");for(int i=0; i<(int)((N + 1) / 2 - 2); i++){printf("%c", c);for(int j=0; j<(N-2); j++){printf(" ");}printf("%c\n", c);}for(int i=0; i<N; i++){printf("%c", c);}return 0;
}
04 日期处理 —— 日期差值
#include <iostream>
using namespace std;//1 分解年月日
//2 年分365、366天,月分29、30、31天
//3 数据比大小,小的做加法int specialYear(int x){if(x % 4 == 0 && x % 100 != 0)return 1;else return 0;
}int main(){int data1, data2;int y1, y2, m1, m2, d1, d2;//4 二维数组,巧妙地把月份和年份联结起来int month[13][2] = {{-1,-1}, {31, 31}, {28, 29}, {31, 31}, {30, 30}, {31, 31}, {30, 30}, {31, 31}, {31, 31},{30, 30},{31, 31}, {30, 30}, {31, 31}};while(scanf("%d%d", &data1, &data2) != EOF){if((data1 - data2) < 0){int temp = data1;data1 = data2;data2 = temp;}d1 = data1 % 100, m1 = (data1 / 100) %100, y1 = data1 / 10000;d2 = data2 % 100, m2 = (data2 / 100) %100, y2 = data2 / 10000;int count = 0;while(!(y1 == y2 && m1 == m2 && d1 == d2)){d2++;count++;if(d2 == month[m2][specialYear(y2)] + 1){m2++;d2 = 1;if(m2 == 13){m2 = 1;y2++;}} }printf("%d\n", count);}return 0;
}
05 进制转换
对一个 P 进制的数,如果要转换为 Q 进制,需要分为两步:
① 将 P 进制数 x 转换为十进制数 y。
int x, P;
scanf("%d%d", &x, &P);int y = 0, product = 1;
while(x != 0){y = y + (x % 10) * product;x = x / 10;product = product * P;
}
② 将十进制数 y 转换为 Q 进制数 z。
采用 “除基取余法”。每次将待转换数 y 除以 Q,得到的余数作为低位存储,得到的商继续除以 Q 并重复上述操作,最后商为 0 时,将所有位从高到底输出得到 z。
int Q;
scanf("%d", &Q);int z[40], i = 0;
//如果十进制数y恰好等于0,那么使用while语句会使循环直接跳出,而非存放z[0]=0
do{z[i] = y % Q;y = y / Q;i++;
}while(y != 0);while(i != -1){printf("%d", z[i]);i--;
}
Ⅰ D 进制的 A+B
#include <iostream>
using namespace std;int main(){int A, B, D;scanf("%d%d%d", &A, &B, &D);int C = A + B;//除基取余法int num[40], i = 0;do{num[i++] = C % D;C /= D;}while(C != 0);while(i != -1){printf("%d", num[--i])}return 0;
}
06 字符串处理
Ⅰ 回文串
#include <iostream>
using namespace std;int main(){char str[255];gets(str);int len = strlen(str); //1 字符串长度strlen()for(int i = 0; i < (len / 2); i++){if(str[i] != str[len - 1 - i]){ printf("NO.");}}if(i == len / 2){printf("Yes.")}return 0;
}
Ⅱ 说反话
#include <iostream>
using namespace std;int main(){char str[80], word[80][80] = {(0, 0)};while(gets(str) != EOF){int m = 0, n = 0;for(int i=0; i<strlen(str); i++){if(str[i] != ' '){word[m][n++] = str[i];}else{word[m][n] = '\0'; //1 末尾是结束符\0m++;n = 0;}}while(m != 0){puts(word[m--]);printf(" ");}//2 最后一个单词之后输出空格会导致 “格式错误”puts(word[0]);}return 0;
}
相关文章:

算法笔记 02 —— 入门模拟
本系列为胡凡编著的算法笔记当中代码部分的精简版整理,笔者也在同时准备Leetcode刷题和实习面试,希望为有一定编码和数据结构基础的同学提供一份系统型的参考,以方便遗忘时的算法查阅、期末复习总览以及C学习参照。 目录 01 简单模拟 Ⅰ害…...

PyTorch 源码学习:从 Tensor 到 Storage
分享自己在学习 PyTorch 源码时阅读过的资料。本文重点关注 PyTorch 的核心数据结构 Tensor 的设计与实现。因为 PyTorch 不同版本的源码实现有所不同,所以笔者在整理资料时尽可能按版本号升序,版本号见标题前[]。最新版本的源码实现还请查看 PyTorch 仓…...

uniapp 使用 鸿蒙开源字体
uniapp vue3 使用 鸿蒙开源字体 我的需求是全局使用鸿蒙字体。 所以: 0. 首先下载鸿蒙字体: 鸿蒙资源 下载后解压,发现里面有几个文件夹: 字体名称说明Sans默认的鸿蒙字体,支持基本的多语言字符(包括字…...

LabVIEW多电机CANopen同步
核心问题与解决方案 通信层配置 节点ID与波特率冲突问题:在多电机系统中,节点ID重复或波特率不匹配常导致通信中断或数据丢失。案例:某3轴贴片机因步科驱动器的默认节点ID均为1,触发了总线仲裁错误。解决方案:通过配置…...

每日定投40刀BTC(2)20250209 - 20250212
行路吟 青山叠叠水迢迢, 步履虽艰志未消。 莫问前程几多苦, 长风破浪自逍遥。...
【LeetCode Hot100 子串】和为 k 的子数组、滑动窗口最大值、最小覆盖子串
子串 1. 和为 k 的子数组题目描述解题思路主要思路步骤 时间复杂度与空间复杂度代码实现 2. 滑动窗口最大值题目描述解题思路双端队列的原理:优化步骤: Java实现 3. 最小覆盖子串题目描述解题思路滑动窗口的基本思路:具体步骤:算法…...
某虚拟页式存储管理系统中有一个程序占8个页面,运行时访问页面的顺序是1,2,3,4,5,3,4,1,6,7,8,7,8,5。假设刚开始内存没有预装入任何页面。
某虚拟页式存储管理系统中有一个程序占8个页面,运行时访问页面的顺序是1,2,3,4,5,3,4,1,6,7,8,7,8,5。假设刚开始内存没有预装入任何页面。 (1) 如果采用LRU调度算法,该程序在得到4块内存空间时,会产生多少次缺页中断?请给出详细…...
傅里叶公式推导(三)
文章目录 周期 2L周期T 周期 2L 周期 T 2 L T2L T2L 的傅里叶变换 即 f ( t ) f ( t 2 L ) f(t) f(t2L) f(t)f(t2L) xt2 π \pi π 2 L 2L 2L 原公式 f ( x ) a 0 2 ∑ n 1 ∞ [ a n cos n x b n sin n x ] a 0 1 π ∫ − π π f ( x ) d x a n 1 π ∫…...
Ubuntu 下 nginx-1.24.0 源码分析 - ngx_time_update函数
定义在 src\core\ngx_times.c 中 ngx_time_init 函数后面 void ngx_time_update(void) {u_char *p0, *p1, *p2, *p3, *p4;ngx_tm_t tm, gmt;time_t sec;ngx_uint_t msec;ngx_time_t *tp;struct timeval tv;if (!ngx_trylock(&ngx…...

老牌系统工具箱,现在还能打!
今天给大家分享一款超实用的电脑软硬件检测工具,虽然它是一款比较“资深”的软件,但依然非常好用,完全能满足我们的日常需求。 电脑软硬件维护检测工具 功能强大易用 这款软件非常贴心,完全不需要安装,直接打开就能用…...
mysql error1449解决方法
MySQL Error 1449 错误信息为 “The user specified as a definer (userhost) does not exist”,意思是定义者(创建存储过程、函数、触发器等数据库对象时指定的用户)在当前系统中不存在,从而导致无法正常使用这些对象。以下是针对…...

Notepad++ 中删除所有以 “pdf“ 结尾的行
Notepad 中删除所有以 “pdf” 结尾的行 操作步骤 1.打开文件: 在 Notepad 中打开你需要处理的文本文件。 2.打开查找和替换对话框: 按快捷键 Ctrl F,打开“查找和替换”对话框。 3.启用正则表达式模式: 在对话框的底部…...

归并排序 和 七大算法的总结图
目录 什么是递归排序: 图解: 递归方法: 代码实现: 思路分析: 非递归方法: 思路: 代码实现: 思路分析: 什么是递归排序: 先将数据分解成诺干个序列࿰…...
嵌入式硬件篇---原码、补码、反码
文章目录 前言简介八进制原码、反码、补码1. 原码规则示例问题 2. 反码规则示例问题 3. 补码规则示例优点 4. 补码的运算5. 总结 十六进制原码、反码、补码1. 十六进制的基本概念2. 十六进制的原码规则示例 3. 十六进制的反码规则示例 4. 十六进制的补码规则示例 5. 十六进制补…...

评估多智能体协作网络(MACNET)的性能:COT和AUTOGPT基线方法
评估多智能体协作网络(MACNET)的性能 方法选择:选择COT(思维链,Chain of Thought)、AUTOGPT等作为基线方法。 COT是一种通过在推理过程中生成中间推理步骤,来增强语言模型推理能力的方法,能让模型更好地处理复杂问题,比如在数学问题求解中,展示解题步骤。 AUTOGPT则是…...
洛谷题目: P2398 GCD SUM 题解 (本题较难,省选-难度)
题目传送门: P2398 GCD SUM - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 前言: 本题涉及到 欧拉函数,素数判断,质数,筛法 ,三大知识点,相对来说还是比较难的。 本题要求我们计算 …...

kubernetes-cni 框架源码分析
深入探索 Kubernetes 网络模型和网络通信 Kubernetes 定义了一种简单、一致的网络模型,基于扁平网络结构的设计,无需将主机端口与网络端口进行映射便可以进行高效地通讯,也无需其他组件进行转发。该模型也使应用程序很容易从虚拟机或者主机物…...
AI Agent有哪些痛点问题
AI Agent有哪些痛点问题 目录 AI Agent有哪些痛点问题AI Agent领域有哪些知名的论文缺乏一个将智能多智能体技术和在真实环境中学习的两个适用流程结合起来的统一框架LLM的代理在量化和客观评估方面存在挑战自主代理在动态环境中学习、推理和驾驭不确定性存在挑战AI Agent领域有…...
使用Java爬虫获取京东JD.item_sku API接口数据
在电商领域,商品的SKU(Stock Keeping Unit)信息是运营和管理的关键数据。SKU信息包括商品的规格、价格、库存等,对于商家的库存管理、定价策略和市场分析至关重要。京东作为国内领先的电商平台,提供了丰富的API接口&am…...

华为云+硅基流动使用Chatbox接入DeepSeek-R1满血版671B
华为云硅基流动使用Chatbox接入DeepSeek-R1满血版671B 硅基流动 1.1 注册登录 1.2 实名认证 1.3 创建API密钥 1.4 客户端工具 OllamaChatboxCherry StudioAnythingLLM 资源包下载: AI聊天本地客户端 接入Chatbox客户端 点击设置 选择SiliconFloW API 粘贴1.3创…...
生成xcframework
打包 XCFramework 的方法 XCFramework 是苹果推出的一种多平台二进制分发格式,可以包含多个架构和平台的代码。打包 XCFramework 通常用于分发库或框架。 使用 Xcode 命令行工具打包 通过 xcodebuild 命令可以打包 XCFramework。确保项目已经配置好需要支持的平台…...
synchronized 学习
学习源: https://www.bilibili.com/video/BV1aJ411V763?spm_id_from333.788.videopod.episodes&vd_source32e1c41a9370911ab06d12fbc36c4ebc 1.应用场景 不超卖,也要考虑性能问题(场景) 2.常见面试问题: sync出…...
Java 8 Stream API 入门到实践详解
一、告别 for 循环! 传统痛点: Java 8 之前,集合操作离不开冗长的 for 循环和匿名类。例如,过滤列表中的偶数: List<Integer> list Arrays.asList(1, 2, 3, 4, 5); List<Integer> evens new ArrayList…...

云启出海,智联未来|阿里云网络「企业出海」系列客户沙龙上海站圆满落地
借阿里云中企出海大会的东风,以**「云启出海,智联未来|打造安全可靠的出海云网络引擎」为主题的阿里云企业出海客户沙龙云网络&安全专场于5.28日下午在上海顺利举办,现场吸引了来自携程、小红书、米哈游、哔哩哔哩、波克城市、…...

MFC内存泄露
1、泄露代码示例 void X::SetApplicationBtn() {CMFCRibbonApplicationButton* pBtn GetApplicationButton();// 获取 Ribbon Bar 指针// 创建自定义按钮CCustomRibbonAppButton* pCustomButton new CCustomRibbonAppButton();pCustomButton->SetImage(IDB_BITMAP_Jdp26)…...

《通信之道——从微积分到 5G》读书总结
第1章 绪 论 1.1 这是一本什么样的书 通信技术,说到底就是数学。 那些最基础、最本质的部分。 1.2 什么是通信 通信 发送方 接收方 承载信息的信号 解调出其中承载的信息 信息在发送方那里被加工成信号(调制) 把信息从信号中抽取出来&am…...

Mac软件卸载指南,简单易懂!
刚和Adobe分手,它却总在Library里给你写"回忆录"?卸载的Final Cut Pro像电子幽灵般阴魂不散?总是会有残留文件,别慌!这份Mac软件卸载指南,将用最硬核的方式教你"数字分手术"࿰…...

微服务商城-商品微服务
数据表 CREATE TABLE product (id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 商品id,cateid smallint(6) UNSIGNED NOT NULL DEFAULT 0 COMMENT 类别Id,name varchar(100) NOT NULL DEFAULT COMMENT 商品名称,subtitle varchar(200) NOT NULL DEFAULT COMMENT 商…...

图表类系列各种样式PPT模版分享
图标图表系列PPT模版,柱状图PPT模版,线状图PPT模版,折线图PPT模版,饼状图PPT模版,雷达图PPT模版,树状图PPT模版 图表类系列各种样式PPT模版分享:图表系列PPT模板https://pan.quark.cn/s/20d40aa…...

算法岗面试经验分享-大模型篇
文章目录 A 基础语言模型A.1 TransformerA.2 Bert B 大语言模型结构B.1 GPTB.2 LLamaB.3 ChatGLMB.4 Qwen C 大语言模型微调C.1 Fine-tuningC.2 Adapter-tuningC.3 Prefix-tuningC.4 P-tuningC.5 LoRA A 基础语言模型 A.1 Transformer (1)资源 论文&a…...