01循环算法

1.求小数点的某一位,且超出float和double的精度问题

【题目描述】

分数a/b化为小数后,小数点后第n位的数字是多少?

【输入】

三个正整数a,b,n,相邻两个数之间用单个空格隔开。0<a<b<100,1<=n<=100000

【输出】

一个数字。

【输入样例】

1 2 1

【输出样例】

5

float精度

大约6-7位

double精度

大约15-16位

本题精度超过double

#include <iostream>

using namespace std;

int main(){
    int n,a,b;
    cin>>a>>b>>n;
    for(int i=1;i<=n;i++) {
        a = a % b;
        a = a * 10;
    }
    cout<<a/b<<endl;
    return 0;
}

2.幂的尾数

模运算的性质、同余、线性同余方程组、扩展欧几里得、逆元、费马小定理、中国剩余定理

模运算的性质:加、减、乘、乘方

性质1:(a+b)%m=(a%m+b%m)%m

性质2:(a-b)%m=(a%m-b%m)%m

性质3:(a* b)%m=(a% m* b%m)%m

性质4:(a^b)%m 循环性质3

算法思想:

* 用到了模运算的性质
* (a^b)%m计算很可能a^b就越界了
* 所以把它看成1*a*a*a*a*a……*a 总共有b个a
* 已知(a*b)%m=(a%m*b%m)%m
* 所以(a^b)%m=循环--> s=(s%m+a%m)%m这个语句一直循环b次
void text01(){
    int a,b,s=1;
    cin>>a>>b;
    /*
     * 用到了模运算的性质
     * (a^b)%m计算很可能a^b就越界了
     * 所以把它看成1*a*a*a*a*a……*a 总共有b个a
     * 已知(a*b)%m=(a%m*b%m)%m
     * 所以(a^b)%m=循环--> s=(s%m+a%m)%m这个语句一直循环b次
     * */
    for(int i=1;i<=b;i++){
        s=(s%m*a%m)%m;
    }
    printf("%03d",s);
}

什么时候用到模运算性质

当题目中是一个大数据量让你求末多少位的时候,一般要考虑模运算的性质

注意:pow的返回值位double类型,而模运算两边必须是整数类型

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

格式输出:

printf("%03d",3)

%0md–>宽度位m 不足m位前面补0

3.text段、data段、bss段

代码段(text段)

程序中的可执行部分,是由函数堆叠而成的

数据段(data段)

存放的是非零的全局变量和静态局部变量

ZI段(bss段)

zero initial 初始化位0的字段
存放的是为另的全局变量

在全局区开整形数组的最大容量为1e8左右

4.STL-标准模板库

容器

vector

list

stack

queue

priority_queue

set

map

unorder_set

unorder_map

迭代器

容器与算法之间的粘合剂

算法

max_element()

min_element()

sort()

可以引入头文件

#include <algorithm>

sort()算法

参1:待排序区间首元素的地址

参2:待排序区间为元素地址的下一位

参3:比较器/比较规则,默认缺省时,则针对C++已有数据类型进行升序排序

若此时数据是自定义的数据类型或者需要改写排序规则的话,需要重写参3

STL中所有传参为区间形式的函数,区间都应该遵循左闭右开原则

底层是快排–>O(nlogn)

#pragma once
#include <iostream>
#include <algorithm>
using namespace std;
const int N=1e8+10;
int nums[N],n;
bool cmp(int left,int right){//回调函数充当排序规则
    return left>right;
}
void text01(){
    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>nums[i];
    }
    sort(nums+1,nums+n+1,cmp);
    for(int i=1;i<=n;i++){
        cout<<nums[i]<<" ";
    }
}

5.素数

法一:试除法

#pragma once
#include <iostream>
#include <algorithm>
using namespace std;
bool IsPrime(int x){
    for(int i=2;i*i<=x;i++){//若根号前没有因子,根号后也一定没有因子了
        if(x%i==0) return false;
    }
    return true;
}
void text01(){
    int n;
    cin>>n;
    for(int i=2;i<=n;i++){
        if(IsPrime(i)){
            cout<<i<<" ";
        }
    }
}

法二:埃式筛法

素数的倍数一定不是素数,筛掉

#pragma once
#include <iostream>
#include <algorithm>

using namespace std;
const int N=1e3+10;
bool vis[N];//bool类型的标记数组
int prime[N],n,k;//prime数组
void E_sieve(){
    fill(vis+2,vis+n+1,1);
    for(int i=2;i<=n;i++){
        if(vis[i]){//开始筛选
            prime[++k]=i;//存入素数表
            for(int j=i*i;j<=n;j=j+i){
                vis[j]=false;
            }
        }
    }
}
void text01(){
    cin>>n;
    E_sieve();
    for(int i=1;i<=k;i++){
        cout<<prime[i]<<" ";
    }
}

6.整数去重

#pragma once
#include <iostream>
#include <algorithm>

using namespace std;
const int N=5e3+10;
int ct[N],x,n;
void text01(){
    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>x;
        if(!ct[x]) cout<<x<<" ";
        ct[x]++;
    }
}

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

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

相关文章

Leetcode with Golang 滑动窗口 Part1

滑动窗口的定义&#xff1a; 滑动窗口这一个技巧主要运用于处理数组问题上&#xff0c;一般用于“子串”问题。精髓是&#xff0c;维护一个里面装着元素的“窗口”&#xff0c;在将新元素装进“窗口”的同时&#xff0c;根据题意&#xff0c;把不符合题意的元素踢出“窗口”。…

远程开发之vacode插件Remote - SSH

远程开发之vacode插件Remote - SSH vscode插件(Remote - SSH)ssh config自定义配置跳板机ssh-agent配置(使ForwardAgent配置生效, 免密拉代码)拷贝公钥到服务器(实现免密登录服务器) 通过vscode的Remote - SSH插件, 实现远程服务器进行像本地操作一样使用远程服务器, 亦可进行像…

第 3 场 小白入门赛(1~6) + 第 3 场 强者挑战赛 (1 ~ 5)

第 3 场 小白入门赛 1、厉不厉害你坤哥&#xff08;暴力&#xff09; 2、思维 3、暴力&#xff0c;前缀和&#xff0c;贪心 4、二分 5、DP 6、容斥&#xff0c;双指针 第 3 场 强者挑战赛 2、BFS 5、树上倍增求第k祖先 1. 召唤神坤 题意&#xff1a; 可以发现,如果我…

Python Flask教程

Flask Doc: https://rest-apis-flask.teclado.com/docs/course_intro/what_is_rest_api/Github: https://github.com/tecladocode/rest-apis-flask-python 1. 最简单的应用 最小应用 from flask import Flaskapp Flask(__name__)app.route("/") def hello_world()…

“华为杯“第四届中国研究生数学建模竞赛-D题:邮路规划与邮车调度

目录 摘 要&#xff1a; 1.问题的重述 2.模型的假设与符号说明 2.1 针对本问题&#xff0c;本文做出如下假设 2.2 符号说明 3.问题的数学模型 4.问题的求解 4.1 问题一的求解 4.1.1 最少邮车数的求法 4.1.2 邮路规划及路径选择 4.1.3 问题的求解结果 4.2 问题二的求…

记录下载安装rabbitmq(Linux) 并整合springboot--详细版(全)

下载rabbitmq&#xff08;Linux&#xff09;&#xff1a; erlang压缩包&#xff1a; https://share.weiyun.com/TGhfV8eZ rabbitMq-server压缩包&#xff1a; https://share.weiyun.com/ZXbUwWHD &#xff08;因为RabbitMQ采用 Erlang 实现的工业级的消息队列(MQ)服务器&#…

推荐一款.NET开发的物联网开源项目

物联网&#xff08;IoT&#xff09;是一个正在快速发展的技术领域&#xff0c;它涉及到各种设备、物体和系统的互联。所以各种物联网平台和物联网网关项目层出不穷&#xff0c;在物联网&#xff08;IoT&#xff09;领域&#xff0c;.NET平台扮演着重要的角色。作为一款广泛使用…

备战抖音商城好物年货节,品牌焕发新商机

农历春节前的最后一个月&#xff0c;打工人们逐渐将置办年货提上日程。忙碌了一年的辛苦与疲惫&#xff0c;总能在喜气洋洋买年货的过程中&#xff0c;被一扫而空。这是“年味”的开始&#xff0c;也是公司高管郭广宇面临的一场关键战役。 郭广宇今年35岁&#xff0c;是三只松鼠…

强化学习应用(八):基于Q-learning的无人机物流路径规划研究(提供Python代码)

一、Q-learning简介 Q-learning是一种强化学习算法&#xff0c;用于解决基于马尔可夫决策过程&#xff08;MDP&#xff09;的问题。它通过学习一个价值函数来指导智能体在环境中做出决策&#xff0c;以最大化累积奖励。 Q-learning算法的核心思想是通过不断更新一个称为Q值的…

uni-app做A-Z排序通讯录、索引列表

上图是效果图&#xff0c;三个问题 访问电话通讯录&#xff0c;拿数据拿到用户的联系人数组对象&#xff0c;之后根据A-Z排序根据字母索引快速搜索 首先说数据怎么拿 - 社区有指导https://ask.dcloud.net.cn/question/64117 uniapp 调取通讯录 // #ifdef APP-PLUSplus.contac…

【深度学习目标检测】十六、基于深度学习的麦穗头系统-含GUI和源码(python,yolov8)

全球麦穗检测是植物表型分析领域的一个挑战&#xff0c;主要目标是检测图像中的小麦麦穗。这种检测在农业领域具有重要意义&#xff0c;可以帮助农民评估作物的健康状况和成熟度。然而&#xff0c;由于小麦麦穗在视觉上具有挑战性&#xff0c;准确检测它们是一项艰巨的任务。 全…

DP读书:《openEuler操作系统》(八)TCP、UDP与跨机器通讯

10min速通TCP与UDP 2024 DP读书计算机网络简介TCP/IP协议栈A. 物理层1.信号及信道传递2.信号调制与调解3.信道的复用 B. 数据链路层1.封装成帧2.透明传输3.差错控制 C. 网络层1.IP2.ARP3.路由选择协议 D. 传输层1.端口号2.3.UDP 2024 DP读书 第八章 跨机器通讯 在第六章之中&a…

翻译: Streamlit从入门到精通 基础控件 一

这个关于Streamlit的教程旨在帮助数据科学家或机器学习工程师&#xff0c;他们不是网络开发者&#xff0c;也不想花费数周时间学习使用这些框架来构建网络应用程序。 1. 什么是Streamlit&#xff1f; Streamlit是一个免费且开源的框架&#xff0c;用于快速构建和共享美观的机器…

(南京观海微电子)——色温介绍

色温是表示光线中包含颜色成分的一个计量单位。从理论上说&#xff0c;黑体温度指绝对黑体从绝对零度&#xff08;&#xff0d;273℃&#xff09;开始加温后所呈现的颜色。黑体在受热后&#xff0c;逐渐由黑变红&#xff0c;转黄&#xff0c;发白&#xff0c;最后发出蓝色光。当…

【MCAL】MCU模块详解

目录 前言 正文 1. MCU模块介绍 2. MCU依赖的模块 3. MCU模块提供服务 3.1 时钟的初始化 3.2 MCU模式的配置 3.3 MCU软件复位功能 3.4 RAM的初始化 4.MCU重要数据类型 4.1 Mcu_ResetType 4.2 Mcu_ModeType 5. MCU重要API 5.1 Mcu_Init 5.2 Mcu_InitClock 5.3 M…

qayrup-switch开发文档

因为只是一个小组件,所以直接拿csdn当开发文档了 书接上文uniapp怎么开发插件并发布 : https://blog.csdn.net/weixin_44368963/article/details/135576511 因为我业没有开发过uniapp的组件,所以我看到下面这个文件还是有点懵的 也不清楚怎么引入, 然后去翻了翻官方文档,官方…

Java设计模式-备忘录模式

备忘录模式 一、概述二、结构三、案例实现&#xff08;一&#xff09;“白箱”备忘录模式&#xff08;二&#xff09;“黑箱”备忘录模式 四、优缺点五、使用场景 一、概述 备忘录模式提供了一种状态恢复的实现机制&#xff0c;使得用户可以方便地回到一个特定的历史步骤&…

系列七、Spring Security中基于Jdbc的用户认证 授权

一、Spring Security中基于Jdbc的用户认证 & 授权 1.1、概述 前面的系列文章介绍了基于内存定义用户的方式&#xff0c;其实Spring Security中还提供了基于Jdbc的用户认证 & 授权&#xff0c;再说基于Jdbc的用户认证 & 授权之前&#xff0c;不得不说一下Spring Se…

[Vue]从数据库中动态加载阿里巴巴矢量图标的两种方式

记录一次在Vue中动态使用阿里巴巴矢量图标库 这是本人第一次使用阿里巴巴的矢量图标库&#xff0c;简单的导入和使用的话网上的教程很多&#xff0c;这里不多赘述&#xff0c;本人的需求是从数据库中加载出来并且显示到页面上&#xff0c;接下来简述一下如何实现。 以下代码均是…

【非监督学习 02】高斯混合模型

高斯混合模型&#xff08;Guassian Mixed Model, GMM&#xff09;也是一种常见的聚类算法&#xff0c;与K均值算法类似&#xff0c;同样使用了EM算法进行迭代计算。高斯混合模型假设每个簇的数据都是符合高斯分布的&#xff0c;当前数据呈现的分布就是各个簇的高斯分布叠加在一…