当前位置: 首页 > news >正文

蓝桥杯简单模板

目录

最大公约数

两个数的最大公约数

多个数的最大公约数

最小公倍数

两个数的最小公倍数

多个数的最小公倍数

素数

​编辑

位数分离

正写

​编辑

反写

闰年


最大公约数

两个数的最大公约数

之前看见的是辗转相除法,例如现在让算一个49,21的最大公约数

#include<iostream>
using namespace std;
int main()
{int a=49,b=21;while(b!=0){int tmp=b;b=a%b;a=tmp;}cout<<a;return 0;} 

模拟一下过程

刚开始a=49,b=21,循环判断b不等于0,进入循环,tmp=21,b=a%b=49%21=7,a=tmp=21;

现在a=21,b=7,循环判断b不等于0,进入循环,tmp=7,b=a%b=21%7=0,a=tmp=7;

现在a=7,b=0,循环判断b不等于0,循环结束;

打印a=7;

加上过程的打印:

#include<iostream>
using namespace std;
int main()
{int a=49,b=21;cout<<"a="<<a<<",b="<<b<<endl;while(b!=0){int tmp=b;b=a%b;a=tmp;cout<<"a="<<a<<",b="<<b<<endl;}cout<<endl<<a;return 0;} 

运行结果如下图:

多个数的最大公约数

可以先把前两个数的最大公约数求出来之后,在依次和剩下的数进行辗转相除,求出一组数的最大公约数

#include<iostream>
using namespace std;
int gcd(int a,int b);
int gcd(int a,int b)
{while(b!=0){int tmp=b;b=a%b;a=tmp;}return a; 
}
int main()
{int arr[4]={5,75,80,2000};int num=arr[0];for(int i=1;i<4;i++){num=gcd(num,arr[i]);}cout<<num;return 0;} 

最小公倍数

两个数的最小公倍数

最小公倍数数的求法,一般是将两个数相乘,然后除两个数的最大公约数,下面是具体代码:

#include<iostream>
using namespace std;
int gcd(int a,int b)
{while(b!=0){int tmp=b;b=a%b;a=tmp;}return a; 
}int main(){int a=21,b=7;cout<<a*b/gcd(a,b)<<endl;return 0;}

多个数的最小公倍数

也是同求多个数的最大公约数一样,先求出前两个的最小公倍数,然后依次于剩下的数求出整个数组的最小公倍数。代码如下:

#include<iostream>
using namespace std;
int gcd(int a,int b);
int gcd(int a,int b)
{while(b!=0){int tmp=b;b=a%b;a=tmp;}return a; 
}
int main()
{int arr[4]={50,100,10,20};int num=arr[0];for(int i=1;i<4;i++){num=num*arr[i]/gcd(num,arr[i]);}cout<<num;return 0;} 

素数

因数只有1和他本身的数

 #include<iostream>using namespace std;bool isprime(int n){for(int i=2;i*i<n;i++){if(n%i==0)return false;}return true;}int main(){for(int i=2;i<100;i++){if(isprime(i))printf("%d\t",i);}return 0;}

结果如下

位数分离

有时候会给一些数,然后让分离每个位数的数字,有时候是正写,有时候是反写

正写

正写老师教过递归的写法,但是有些不熟练,我这里的方法是先统计这个数是几位数,然后依次除。

#include<iostream>
#include<cmath>
using namespace std;
int main()
{int a=12345678;int num=a;//用来统计位数int t=0;while(num) {num/=10;t++;}while(t){t--;int i=a/pow(10,t);a=a-i*pow(10,t);cout<<i<<' ';}return 0;} 

结果如下

反写

根据模的特点

 #include<iostream>using namespace std;int main(){int a=12345678;while(a){cout<<a%10<<' ';a/=10;  }return 0;}

结果如下

闰年

不是百年的时候,每四年一闰,

是百年的时候,四百年一闰

#include<iostream>
using namespace std;
bool leap(int year)
{if(year%400==0||year%100!=0&&year%4==0)return true;return false;}
int main()
{for(int i=1;i<1000;i++){if(leap(i))printf("%d\t",i);}return 0;
}

结果

http://www.lryc.cn/news/335447.html

相关文章:

  • 单例模式(饿汉模型,懒汉模型)
  • torchvision中的数据集使用
  • linux 迁移home目录以及修改conda中pip的目录,修改pip安装路径
  • 解析大语言模型训练三阶段
  • 知识图谱的最新进展与未来趋势
  • Facebook直播延迟过高是为什么?
  • CentOS 7.9 额外安装一个Python3.x版本详细教程
  • uml时序图中,消息箭头和消息调用箭头有什么区别
  • 12.C++常用的算法_遍历算法
  • hadoop:案例:将顾客在京东、淘宝、多点三家平台的消费金额汇总,然后先按京东消费额排序,再按淘宝消费额排序
  • 2024年华为OD机试真题-孙悟空吃蟠桃-Python-OD统一考试(C卷)
  • vue3 开发中遇到的问题
  • Vue input密码输入框自定义密码眼睛icon
  • 【LAMMPS学习】八、基本知识的讨论(1.4)多副本模拟
  • SpringBoot整合RabbitMQ-应答模式
  • 51单片机入门_江协科技_25~26_OB记录的笔记_蜂鸣器教程
  • 新能源汽车电池包为什么不通用,车主怎么用电才算对?
  • [C语言]——柔性数组
  • 密码学 总结
  • 尚硅谷html5+css3(1)html相关知识
  • 苍穹外卖11(Apache ECharts前端统计,营业额统计,用户统计,订单统计,销量排名Top10)
  • 大商创多用户商城系统 多处SQL注入漏洞复现
  • 美团一面4/9
  • ubuntu下NTFS分区无法访问挂载-解决办法!
  • 如何在 Ubuntu 14.04 上使用 Rsyslog、Logstash 和 Elasticsearch 实现日志集中管理
  • mapbox 工作问题暂时记录
  • Linux、Docker、Brew、Nginx常用命令
  • 【Spring实战项目】SpringBoot3整合WebSocket+拦截器实现登录验证!从原理到实战
  • 第二证券|政策利好不断,工业母机概念爆发,华东数控等涨停
  • Thinkphp5萤火商城B2C小程序源码