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]++;}
}

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

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

相关文章

【微信小程序独立开发2】授权登录 上

前言&#xff1a;这一节设想完成的功能为进入小程序后请求授权信息&#xff0c;用户授权登录后&#xff0c;弹出宠物登记页面&#xff0c;并根据宠物类型播放背景音乐 小程序昵称头像在之前的版本获取规则为触发后弹出用户授权弹窗&#xff0c;授权后可直接获取用户头像和昵称&…

使用 CMake 和 Ninja 构建 C/C++ 项目的教程

使用 CMake 和 Ninja 构建 C/C 项目的教程 CMake 是一个跨平台的开源构建工具&#xff0c;它简化了项目的构建过程。而 Ninja 是一个快速、轻量级的构建系统&#xff0c;与 CMake 配合使用可以提高项目的构建效率。本教程将向你介绍如何使用 CMake 和 Ninja 来构建你的 C/C 项…

金融科技革命:数字化如何塑造未来经济_光点科技

当今世界&#xff0c;数字化不仅是一种趋势&#xff0c;更是深刻重塑经济和金融领域的关键力量。在这个过程中&#xff0c;金融科技&#xff08;FinTech&#xff09;崭露头角&#xff0c;成为革命性变化的代名词。以下是数字化技术在经济和金融领域的几个关键应用&#xff0c;它…

YOLOv5独家原创改进:多层次特征融合(SDI)结合PConv、DualConv、GSConv,实现二次创新 | UNet v2最新论文

💡💡💡本文独家改进:多层次特征融合(SDI)高效结合DualConv、PConv、GSConv等实现二次创新 1)替代原始的Concat; 收录 YOLOv5原创自研 https://blog.csdn.net/m0_63774211/category_12511931.html 💡💡💡全网独家首发创新(原创),适合paper !!! 💡�…

高度自适应scroll-view,uniapp项目

中间粉红的区域高度自适应,不管换什么机型&#xff0c;高度都自适应 <template><!-- 合同-待确认 --><view class"viewport"><!-- 上 --><view class"top-box"><!-- tab --><view class"tabs"><te…

HTML5+CSS3+JS小实例:音频可视化

实例:音频可视化 技术栈:HTML+CSS+JS 效果: 源码: 【HTML】 <!DOCTYPE html> <html lang="zh-CN"> <head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><m…

C++学习笔记——私有继承、多重继承、类模板

目录 一、私有继承 二、多重继承 三、类模板 四、一个使用私有继承的示例代码 4.1代码 4.2输出结果 五、多重继承案列 六、类模板案例 C中的继承和模板是非常强大和灵活的特性&#xff0c;它们可以帮助我们实现代码复用、抽象和泛化等目标。本文将着重介绍私有继承、多…

class_1:qt的安装及基本使用方式

一、选择组件&#xff1a; 1、windows编译工具&#xff1a;MinGW 7.30 32-bit MinGW 7.30 64-bit 2、QT源代码&#xff1a;sources 3、QT的绘图模块&#xff1a;QT charts 4、QT虚拟键盘&#xff1a;QT Virtual Keyboard 5、QT Creational 4.12.2 GDB 二、新建QT项目 文…

Linux完全卸载Anaconda3和MiniConda3

如何安装Anaconda3和MiniConda3请看这篇文章&#xff1a; 安装Anaconda3和MiniConda3_minianaconda3-CSDN博客文章浏览阅读474次。MiniConda3官方版是一款优秀的Python环境管理软件。MiniConda3最新版只包含conda及其依赖项如果您更愿意拥有conda以及超过720个开源软件包&…

高通平台开发系列讲解(USB篇)adb function代码分析

文章目录 一、FFS相关动态打印二、代码入口三、ffs_alloc_inst四、ep0、ep1&ep2的注册五、读写过程沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本文主要介绍高通平台USB adb function代码f_fs.c。 一、FFS相关动态打印 目录:msm-4.14/drivers/usb/gadget/fun…

docker+jmeter实现windows作为主控机,linux作为负载机的分布式压测环境搭建

dockerjmeter实现windows作为主控机&#xff0c;linux作为负载机的分布式压测环境搭建 1、搭建环境说明2、windows主控机安装Jmeter3、linux负载机安装Jmeter3.1、安装docker环境3.2、使用docker安装jmeter 4、windows主控机分发测试任务 1、搭建环境说明 准备一台windows主机…

时间序列数据库选型: influxdb; netdiscover列出docker实例们的ip,docker管理工具lazydocker、scope

influxdb influxdb: 有收费版本、有开源版本 influxdb 安装、启动(docker) docker run -itd --name influxdb-dev -p 8086:8086 influxdb #influxdb的web客户端(端口8003)被去掉了 #8006是web-service端口#docker exec -it influxdb-dev bashinfluxdb 自带web界面 从后面的…

Rust-函数

简介 Rust的函数使用关键字fn开头。 函数可以有一系列的输入参数&#xff0c;还有一个返回类型。 函数体包含一系列的语句(或者表达式)。 函数返回可以使用return语句&#xff0c;也可以使用表达式。 Rust编写的可执行程序的入口就是fn main()函数。 以下是一个函数的示例…

代码随想录算法训练营第四天 |24.两两交换链表中的节点,19.删除链表的倒数第N个节点,面试题02.07.链表相交,142、环形链表II

链表基础 1、链表定义&#xff1a; &#xff08;1&#xff09;链表是一种通过指针串联在一起的线性结构&#xff0c;每一个节点由两部分组成&#xff0c;一个是数据域一个是指针域&#xff08;存放指向下一个节点的指针&#xff09;&#xff0c;最后一个节点的指针域指向null…

C++核心编程——文件操作

本专栏记录C学习过程包括C基础以及数据结构和算法&#xff0c;其中第一部分计划时间一个月&#xff0c;主要跟着黑马视频教程&#xff0c;学习路线如下&#xff0c;不定时更新&#xff0c;欢迎关注。 当前章节处于&#xff1a; ---------第1阶段-C基础入门 ---------第2阶段实战…

ROS无人机开发常见错误

一. Ubuntu 相关 1、SSH远程连接报错 解决方案&#xff1a;终端运行上述图中选中部分&#xff0c;更新一下即可 第一步&#xff1a; 第二步&#xff1a;根据提示输入yes后输入密码即可 第三步&#xff1a;成功后如下图所示 2、解决“E 无法获得锁/ var/lib/apt/lists/ (11 资…

Altium Desigenr 孔 规则修改2

1、过孔修改 在这里插入图片描述 2、物理孔

[足式机器人]Part2 Dr. CAN学习笔记-Advanced控制理论 Ch04-7 LQR控制器 Linear Quadratic Regulator

本文仅供学习使用 本文参考&#xff1a; B站&#xff1a;DR_CAN Dr. CAN学习笔记-Advanced控制理论 Ch04-7 LQR控制器 Linear Quadratic Regulator 线性控制器设计-轨迹跟踪&#xff08;Fellow a Desired Path&#xff09;

如何使用 Helm 在 K8s 上集成 Prometheus 和 Grafana|Part 2

在 Part 1 中&#xff0c;我们一起了解了什么是 Prometheus 和 Grafana&#xff0c;以及使用这些工具的前提条件和优势。在本部分&#xff0c;将继续带您学习如何安装 Helm 以及如何使用 Prometheus Helm Charts。 开始使用 Helm 和 Helm Chart ArtifactHub 为 Helm Chart 提供…

Netty开篇——NIO章上(三)

Java NIO基本介绍 java non-blocking I/O 称为NIO(也叫New IO)。JDK4开始提供,同步非阻塞相关内容在 java.nio 包及子包下&#xff0c;对java.io 包中的很多类进行改写。三大核心: Channel(通道)&#xff0c;Buffer(缓冲区),Selector(选择器)NIO是面向缓冲区或者面向块编程的。…