自定义函数库

求两点距离

double dis(double x1, double y1, double x2, double y2){return sqrt(pow(x2-x1, 2)+pow(y2-y1, 2));
}

判断闰年

bool isLeapYear(int year){return year%4==0 && year%100!=0 || year%400==0;
}

判断素数

bool isPrime(int num){if(num<2) return false;for(int i=2; i*i<=num; i++){if(num%i == 0) return false; }return true;
} 

埃氏筛素数

const int N=1e5+1;
bool is_prime[N];
void func(){memset(is_prime, true, sizeof(is_prime));is_prime[0]=is_prime[1]=false;for(int i=2; i*i<=N; i++){if(is_prime[i]){for(int j=i*i; j<=N; j=j+i){is_prime[j]=false;}}}
}

冒泡排序

const int N=101;
int n, arr[N];
void bubbleSort() {for(int i=0; i<n-1; i++) {//比较趟数 bool flag = 1;for(int j=0; j<n-i-1; j++) { if(arr[j] > arr[j+1]) {swap(arr[j], arr[j+1]);flag = 0;}}if(flag) break;}
}

插入排序

const int N=101;
int n, arr[N];
void insertSort() {for(int i=1; i<n; i++) {//arr[i]当前需要插入的元素int base=arr[i], j; for(j=i-1; j>=0; j--) {if(arr[j]>base) {arr[j+1]=arr[j];}else break;}arr[j+1]=base;}
}

选择排序

const int N=101;
int n, arr[N];
void selectSort() {for(int i=0; i<n-1; i++) {//i:当次排序元素应该在的位置 int minIndex=i;for(int j=i+1; j<n; j++) {if(arr[j] < arr[minIndex]) {minIndex = j;}}swap(arr[minIndex], arr[i]);}
}

归并排序

const int N=101;
int n, arr[N], tmp[N];
void mergeSort(int left, int right){int mid=(left+right)/2;if(left<mid) partition(left, mid);if(mid+1<right) partition(mid+1, right);int i=left, j=mid+1, t=0;while(i<=mid && j<=right){if(arr[i] < arr[j]) tmp[t++] = arr[i++];else tmp[t++] = arr[j++];}while(i<=mid) tmp[t++] = arr[i++];while(j<=right) tmp[t++] = arr[j++];for(int i=0; i<t; i++) arr[i+left] = tmp[i];
}

快速排序

const int N=101;
int n, arr[N];
void quickSort(int left, int right){int num = arr[left], i=left, j=right;while(i<j){while(i<j && arr[j]>=num)  j--;arr[i]=arr[j];while(i<j && arr[i]<=num)i++;arr[j]=arr[i];}arr[i]=num;if(left<i-1) quickSort(left, i-1);if(i+1<right) quickSort(i+1, right); 
}

排列-n个数中抽m个进行全排列

const int N=10;
int n, m, arr[N], box[N]; 
bool vis[N];
void dfs(int pos){if(pos==m){for(int i=0; i<m; i++) cout<<box[i]<<" ";cout<<endl;return;}for(int i=0; i<n; i++){if(!vis[i]){vis[i]=true;box[pos]=arr[i];dfs(pos+1);vis[i]=false;}}
}

组合-n个数中抽m个进行组合

const int N=10;
int n, m, arr[N], box[N]; 
bool vis[N];
void dfs(int idx, int pos){if(pos==m){for(int i=0; i<m; i++) cout<<box[i]<<" ";cout<<endl;return;}for(int i=idx; i<n; i++){if(!vis[i]){vis[i]=true;box[pos]=arr[i];dfs(i+1, pos+1);vis[i]=false;}}
}

高精度数加法

string add(string a, string b) {int lena=a.length(), lenb=b.length(), a1[1005]= {}, b1[1005]= {};for(int i=0; i<lena; i++) a1[lena-1-i] = a[i]-'0';for(int i=0; i<lenb; i++) b1[lenb-1-i] = b[i]-'0';int lenc=lena>lenb?lena:lenb, c1[1005]= {}, carry=0;for(int i=0; i<lenc; i++) {c1[i]=a1[i]+b1[i]+carry;carry=c1[i]/10;c1[i]%=10;}if(carry>0) c1[lenc++]=carry;string res="";for(int i=lenc-1; i>=0; i--) res += c1[i]+'0';return res;
}

高精度数减法

string sub(string a, string b) {bool f=true; //标记a和b的大小关系,默认a大 int lena=a.length(), lenb=b.length();if(lena<lenb || lena==lenb && a<b){f=false;swap(a, b);swap(lena, lenb);} int a1[1005]= {}, b1[1005]= {};for(int i=0; i<lena; i++) a1[lena-1-i] = a[i]-'0';for(int i=0; i<lenb; i++) b1[lenb-1-i] = b[i]-'0';int c1[1005]= {}, lenc=lena;for(int i=0; i<lenc; i++) {if(a1[i]<b1[i]){a1[i+1]--;a1[i]+=10;} c1[i]=a1[i]-b1[i];}while(lenc>1 && c1[lenc-1]==0) lenc--; string res="";if(f==false) res+='-';for(int i=lenc-1; i>=0; i--) res += c1[i]+'0';return res;
}

高精度数乘法,大数乘大数

string mul1(string a, string b) {int lena=a.length(), lenb=b.length(), a1[1005]= {}, b1[1005]= {};for(int i=0; i<lena; i++) a1[lena-1-i] = a[i]-'0';for(int i=0; i<lenb; i++) b1[lenb-1-i] = b[i]-'0';int lenc=lena+lenb, c1[2005]= {}, carry;for(int i=0; i<lenb; i++) {carry=0;for(int j=0; j<lena; j++) {c1[i+j]+=a1[j]*b1[i]+carry;carry = c1[i+j]/10;c1[i+j]%=10;}c1[i+lena]=carry;}while(lenc>1 && c1[lenc-1]==0) lenc--;//保存运算结果string res="";for(int i=lenc-1; i>=0; i--) res += c1[i]+'0';return res;
}

高精度数乘法,大数乘小数

string mul2(string a, int b){int lena=a.length(), a1[1005]={};for(int i=0; i<lena; i++) a1[lena-1-i]=a[i]-'0';int lenc=lena, c1[2005]={}, carry=0;for(int i=0; i<lenc; i++){c1[i] = a1[i]*b+carry;carry = c1[i]/10;c1[i] %= 10;}while(carry){c1[lenc++]=carry%10;carry/=10;}string res="";for(int i=lenc-1; i>=0; i--) res+=c1[i]+'0';return res;
}

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

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

相关文章

解决前后端发送验证码手机号登陆的sessionId不一致问题

前端&#xff1a;鸿蒙开发ArkTs语言 后端&#xff1a;spring boot mybatis-plus框架 后端代码 PostMapping("/sendMsg")public R<String> sendMsg(RequestBody User user, HttpServletRequest request, HttpServletResponse response) {// 从User对象中提取用…

基于多视角深度学习技术的乳腺X线分类:图神经网络与Transformer架构的研究|文献速递-生成式模型与transformer在医学影像中的应用速递

Title 题目 Mammography classification with multi-view deep learning techniques:Investigating graph and transformer-based architectures 基于多视角深度学习技术的乳腺X线分类&#xff1a;图神经网络与Transformer架构的研究 01 文献速递介绍 乳腺X线检查是乳腺癌…

开发环境服务器 vs 生产环境服务器:开发与生产须分明

【背景】作为开发者&#xff0c;我们在不同的阶段都与两种服务器环境打交道——开发环境服务器和生产环境服务器。虽然听起来名字相似&#xff0c;但它们的职责和工作方式简直是天差地别&#xff01; 不知道朋友们有没有跟我一开始刚了解的时候的一些疑惑&#xff0c;因为刚开始…

Maxscript移动、旋转和缩放

3DMAX对象最常用的三种变换方式是移动、旋转和缩放。本文将详细介绍这些是如何工作的。移动&#xff1a; 使用move函数处理移动&#xff1a; move <object> <vector> 按矢量移动对象&#xff1a; c cone() --c is at 0,0,0 move c [0,1,0] --after this l…

恢复删除的文件:6个免费Windows电脑数据恢复软件

数据恢复软件可帮助您从众多存储设备中恢复损坏或删除的数据。您可以使用这些文件恢复软件来检索文件、文档、视频、图片等。这些应用程序支持多种标准文件格式&#xff0c;如 PNG、RTF、PDF、HTML、JPG、MP3 等。 经过超过 75 小时的研究&#xff0c;我分析了 25 最佳免费数据…

探索 Python 编程调试案例:程序平均值的修复过程

&#x1f49d;&#x1f49d;&#x1f49d;Python 作为一门广泛应用的编程语言&#xff0c;其编程过程并非总是一帆风顺。即使是经验丰富的程序员&#xff0c;也会在代码中遇到各种错误。而调试Python代码过程&#xff0c;也是学习中不可避免的步骤。 今天来看一个简单的案例。…

简单了解一下 Go 语言构建约束?

​构建约束是一种在 Go 语言中控制源文件编译条件的方法&#xff0c;它可以让您指定某些文件只在特定的操作系统、架构、编译器或 Go 版本下编译&#xff0c;而在其他环境中自动忽略。这样可以方便您针对不同的平台或场景编写不同的代码&#xff0c;实现条件编译的功能。 构建…

全国青少年信息学奥林匹克竞赛(信奥赛)备考实战之计数器与累加器实战题目

题目1—三个连续的自然数计算 问题描述&#xff1a; 若有3个连续的自然数&#xff0c;已知第一个自然数为100&#xff0c;请编写程序输出这3个自然数。 输入格式&#xff1a; 无 输出格式&#xff1a; 三行三个整数 输入输出样例&#xff1a; 输入样例 输出样例 无 1…

人工智能大语言模型起源篇(二),从通用语言微调到驾驭LLM

上一篇&#xff1a;《人工智能大语言模型起源篇&#xff08;一&#xff09;&#xff0c;从哪里开始》 &#xff08;5&#xff09;Howard 和 Ruder 于2018年发表的《Universal Language Model Fine-tuning for Text Classification》&#xff0c;https://arxiv.org/abs/1801.06…

基于MATLAB的电力系统潮流计算

为了进行潮流计算&#xff0c;通常可以使用像MATPOWER这样的电力系统分析工具包&#xff0c; 在MATLAB中的MATPOWER工具包中&#xff0c;多个不同的系统模型被定义为测试案例&#xff08;case&#xff09;。这些测试案例用于模拟和分析电力系统中的潮流计算、最优潮流问题、稳…

Unity屏幕截图、区域截图、读取图片、WebGL长截屏并下载到本地jpg

Unity屏幕截图、区域截图、读取图片、WebGL长截屏并下载到本地jpg 一、全屏截图并保存到StreamingAssets路径下 Texture2D screenShot;//保存截取的纹理public Image image; //显示截屏的Imagepublic void Jietu(){StartCoroutine(ScrrenCapture(new Rect(0, 0, Screen.width…

使用 ADB (Android Debug Bridge) 工具来截取 Android 设备的屏幕截图

可以使用 ADB (Android Debug Bridge) 工具来截取 Android 设备的屏幕截图。以下是具体的操作步骤&#xff1a; 1. 连接设备 确保 Android 设备通过 USB 或网络连接到电脑&#xff0c;并运行以下命令检查连接状态&#xff1a; adb devices2. 截取屏幕截图 运行以下命令将设…

TypeScript 的崛起:全面解析与深度洞察

一、背景与起源 &#xff08;一&#xff09;JavaScript 的局限性 类型系统缺失 难以在编码阶段发现类型相关错误&#xff0c;导致运行时错误频发。例如&#xff0c;将字符串误当作数字进行数学运算&#xff0c;可能在运行时才暴露问题。函数参数类型不明确&#xff0c;容易传入…

Moretl无人值守日志采集工具

永久免费: 至Gitee下载 使用教程: Moretl使用说明 用途 定时全量或增量采集工控机,电脑文件或日志. 优势 开箱即用: 解压直接运行.不需额外下载.管理设备: 后台统一管理客户端.无人值守: 客户端自启动,自更新.稳定安全: 架构简单,兼容性好,通过授权控制访问. 架构 技术架…

The Rise and Potential of Large Language ModelBased Agents:A Survey---摘要、背景、引言

题目 基于大语言模型的Agent的兴起与发展前景 论文地址&#xff1a;https://arxiv.org/pdf/2309.07864.pdf 项目地址&#xff1a;https:/github.com/WooooDyy./LLM-Agent–Paper-List 摘要 长期以来&#xff0c;人类一直在追求等同于或超越人类水平的人工智能(A)&#xff0c;…

lc46全排列——回溯

46. 全排列 - 力扣&#xff08;LeetCode&#xff09; 法1&#xff1a;暴力枚举 总共n!种全排列&#xff0c;一一列举出来放入list就行&#xff0c;关键是怎么去枚举呢&#xff1f;那就每次随机取一个&#xff0c;然后删去这个&#xff0c;再从剩下的数组中继续去随机选一个&a…

题目 1761: 学习ASCII码

题目 1761: 学习ASCII码 时间限制: 2s 内存限制: 192MB 提交: 4331 解决: 2415 题目描述 刚开始学C语言&#xff0c;ASCII码可是必须要会的哦&#xff01;那么问题来了&#xff0c;要求你用熟悉的printf输出字符常量 ’ t ’ 的ASCII以及ASCII码值63对应的字符&#xff01; 注…

使用Flink CDC实现 Oracle数据库数据同步的oracle配置操作

使用Flink CDC实现 Oracle数据库数据同步的oracle配置操作&#xff0c;包括开启日志归档和用户授权。 flink官方参考资料&#xff1a; https://nightlies.apache.org/flink/flink-cdc-docs-master/zh/docs/connectors/flink-sources/oracle-cdc/ 操作步骤&#xff1a; 1.启用…

字体子集化实践探索

最近项目rust生成PDF组件printpdf需要内嵌完整字体导致生成的PDF很大&#xff0c;需要做压缩&#xff0c;但是rust的类库allsorts::subset::subset不支持windows&#xff0c;所以做了一些windows下字体子集化的尝试 方案一&#xff1a;node.js做子集化 fontmin 缺点是也需要集…

Spring Boot教程之二十五: 使用 Tomcat 部署项目

Spring Boot – 使用 Tomcat 部署项目 Spring Boot 是一个基于微服务的框架&#xff0c;在其中创建可用于生产的应用程序只需很少的时间。Spring Boot 建立在 Spring 之上&#xff0c;包含 Spring 的所有功能。如今&#xff0c;它正成为开发人员的最爱&#xff0c;因为它是一个…