[随笔] 快速幂,并查集,求最大公约数,二进制转十进制,十进制转二进制代码

news/2024/10/12 8:16:55

1.快速幂

位运算

复制代码
 1 long long ksm(int n,int x){2     int ans=1;3     while(x){4         if(x&1){5             ans*=n;6         }7         n*=n;8         x>>=1;9     }
10     return ans;
11 }
复制代码

 

递归

复制代码
 1 long long ksm(int n,int x){2     if(x==0) 3         return 1;4     else if (n%2==1){5         return ksm(n,x-1)*n;6     }7     else{8         int temp=ksm(n,x/2);9         return temp*temp;
10     }
11 }
复制代码

 


2.并查集

 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 int n,m;
 4 int fa[100000];
 5 
 6 void init(){
 7     for(int i=0;i<n;i++){
 8         fa[i]=i;
 9     }
10 }
11 
12 int find(int x){
13     if(fa[x]==x){
14         return x;
15     }
16     else{
17         fa[x]=find(fa[x]);
18         return fa[x];
19     }
20 }
21 
22 void unionn(int x,int y){
23     fa[find(x)]=find(y);
24     return ;
25 }

3.求最大公约数

懒了,这是辗转相除

 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 
 4 int a,b,c;
 5 
 6 int gcd(){
 7     if(a<b){
 8         c=a;
 9         a=b;
10         b=c;
11     }
12     while(b!=0){    
13         c=b;
14         b=a%b;
15         a=c;
16     }
17     return a;
18 }

4.二进制转十进制,十进制转二进制

二转十

 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 
 4 long long num,m,i=0,sum=0;
 5 
 6 void print(){
 7     cout<<sum;
 8     return ;
 9 }
10 
11 void twototen(){
12     while(num!=0){
13         m=num%10;
14         num/=10;
15         sum+=m*pow(2,i);
16         i++;
17     }
18     print();
19     return ;
20 }

十转二

 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 
 4 long long num,m,i=0,n=2;
 5 int a[32];
 6 
 7 void print(){
 8     for(i--;i>=0;i--){
 9         cout<<a[i];
10     }
11     return ;
12 }
13 
14 void tentotwo(){15     while(num>0){
16         m=num%n;
17         a[i]=m;
18         num=num/n;
19         i++;
20     }
21     print();
22     return ;
23 }

 

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

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

相关文章

需求改进与系统设计

需求改进&系统设计 一、需求&原型改进 1. 针对课堂讨论提出的问题以及建议对需求进行修改 问题一:原需求文档中将商家模块与管理员模块整合到一起,面向商家群体更像是个人小店; 解决:出于考虑团队成员的技术成本以及团队后续开发的时间成本,如若系统功能完成较为顺…

4.3万字详解PHP+RabbitMQ(AMQP协议、通讯架构、6大模式、交换机队列消息持久化、死信队列、延时队列、消息丢失、重复消费、消息应答、消息应答、发布确认、故障转移、不公平分发、优先级、等)

理论(后半部分有实操详解) 哲学思考易经思维:向各国人讲述一种动物叫乌龟,要学很久的各国语言,但是随手画一个乌龟,全世界的人都能看得懂。 道家思维:努力没有用(指劳神费心的机械性重复、肢体受累、刻意行为),要用心(深度思考、去感悟、透过现象看本质)才有用。 举…

【攻防靶场系列】WEB LLM 学习及实操(一)

什么是LLM❓大型语言模型 (LLM) 是一种 AI 算法,可以处理用户输入并通过预测单词序列来创建合理的响应。他们在巨大的半公开数据集上接受训练,使用机器学习来分析语言的组成部分如何组合在一起。如何检测LLM漏洞❓确定LLM(语言模型)的输入,包括直接输入(如提示)和间接…

在线AI智能客服源码|支持多国语言|人工客服坐席系统下载

此款客服系统可以对接ChatGPT,也可以对接国内大模型实现智能AI回复 访客界面是可以切换多国语言,实现多语言客服系统 客服后台功能完善,高性能大并发支持,并且占用资源很低,只要是服务器就能运行 即时通讯实时消息接受,可以随时获取到访客的咨询信息,不放过一个意向客户…

【安卓逆向】MotionNinja会员功能的解锁分析

这次的要分析的软件是😃无壳,mt管理一键去除签名就行🤩 先来看看这款应用这里有很多实用的功能但是要会员!!!😂 这里导入jadx分析一下,还是先搜索一下isvip这两个方法名根据我的经验,一眼是假的,点进去看看空方法,果然没什么用,这里还搜索了"会员”,“vip…

Linux 中sed命令实现从gff文件中仅仅提取基因名称

001、(base) [b20223040323@admin1 x_test]$ ls ## 测试gff文件 GCF_000001405.40_GRCh38.p14_genomic.fna.gz GCF_000001405.40_GRCh38.p14_genomic.gff (base) [b20223040323@admin1 x_test]$ grep -v "^#" GCF_000001405.40_GRC…