01循环算法

news2024/9/24 23:32:12

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.coloradmin.cn/o/1380409.html

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

相关文章

RK3568驱动指南|第十二篇 GPIO子系统-第134章 三级节点操作函数实验

瑞芯微RK3568芯片是一款定位中高端的通用型SOC&#xff0c;采用22nm制程工艺&#xff0c;搭载一颗四核Cortex-A55处理器和Mali G52 2EE 图形处理器。RK3568 支持4K 解码和 1080P 编码&#xff0c;支持SATA/PCIE/USB3.0 外围接口。RK3568内置独立NPU&#xff0c;可用于轻量级人工…

Redis:原理速成+项目实战——Redis实战14(BitMap实现用户签到功能)

&#x1f468;‍&#x1f393;作者简介&#xff1a;一位大四、研0学生&#xff0c;正在努力准备大四暑假的实习 &#x1f30c;上期文章&#xff1a;Redis&#xff1a;原理速成项目实战——Redis实战13&#xff08;GEO实现附近商铺、滚动分页查询&#xff09; &#x1f4da;订阅…

【AI的未来 - AI Agent系列】【MetaGPT】0. 你的第一个MetaGPT程序

《MetaGPT智能体开发入门》开课&#xff0c;跟着课程&#xff0c;学习MetaGPT智能体开发。 0. 安装MetaGPT 请确保你的系统已安装Python 3.9。你可以通过以下命令进行检查&#xff1a; python3 --version下面是具体的安装命令&#xff1a; 安装命令 pip install metagpt如…

ZooKeeper 实战(四) Curator Watch事件监听

文章目录 ZooKeeper 实战(四) Curator Watch事件监听0.前言1.Watch 事件监听概念2.NodeCache2.1.全参构造器参数2.2.代码DEMO2.3.日志输出 3.PathChildrenCache3.1.全参构造器参数3.2.子节点监听时间类型3.2.代码DEMO 4.TreeCache4.1.构造器参数4.2.代码DEMO4.3.日志输出 ZooKe…

Flink standalone集群部署配置

文章目录 简介软件依赖部署方案二、安装1.下载并解压2.ssh免密登录3.修改配置文件3.启动集群4.访问 Web UI 简介 Flink独立模式&#xff08;Standalone&#xff09;是部署 Flink 最基本也是最简单的方式&#xff1a;所需要的所有 Flink 组件&#xff0c; 都只是操作系统上运行…

别再为创业失败找借口了!否则你永远无法创业成功!2024适合上班族的创业,2024个人创业做什么

每当聊起创业&#xff0c;很多人嘴上都很积极&#xff0c;行动都很低迷&#xff0c;事后就开始找各种理由开始否定创业这个路&#xff0c;要么就是大环境不好&#xff0c;要么就是行业太差&#xff0c;还有就是竞争太多&#xff0c;反正不会是自己的能力太差。 其实创业没有你想…

Postgres 中文周报:Postgres Weekly 537 期

本周报由 Cloudberry Database 社区编译自英文版《Postgres Weekly》&#xff0c;译文较原文有所调整。 推荐博文 &#x1f3c6; PostgreSQL: The DBMS of the Year 2023 PostgreSQL 荣获 DB-Engines 网站 2023 年度 DBMS 冠军。DB-Engines 收集了 480 款数据库系统信息并跟踪…

各版本 操作系统 对 .NET Framework 与 .NET Core 支持

有两种类型的受支持版本&#xff1a;长期支持 (LTS) 版本和标准期限支持 (STS) 版本。 所有版本的质量都是一样的。 唯一的区别是支持的时间长短。 LTS 版本可获得为期三年的免费支持和补丁。 STS 版本可获得 18 个月的免费支持和修补程序。 有关详细信息&#xff0c;请参阅 .N…

2024年美国大学生数学建模思路 - 复盘:校园消费行为分析

文章目录 0 赛题思路1 赛题背景2 分析目标3 数据说明4 数据预处理5 数据分析5.1 食堂就餐行为分析5.2 学生消费行为分析 建模资料 0 赛题思路 &#xff08;赛题出来以后第一时间在CSDN分享&#xff09; https://blog.csdn.net/dc_sinor?typeblog 1 赛题背景 校园一卡通是集…

mac 上 ssh: connect to host localhost port 22: Connection refused

1。 问题 在搭建hadoop环境的时候 发现ssh localhost 在报错 2. 解决 打开系统设置 -> 共享 -> -> 在左边服务中选择 远程登录 注意红框这些选项慎重选择&#xff01;&#xff01;&#xff01; 修改后&#xff0c;在终端再次 ssh localhost 发现登录成功了 如果…

SkipList 的索引过程,能否越两级搜索

“SkipList 的索引过程&#xff0c;能否越两级搜索&#xff1f;” 昨天&#xff0c;一个工作 7 年的粉丝&#xff0c;去某外包公司面试&#xff0c;被问到这个问题不知道该怎么回答。 今天正好有空&#xff0c;给大家分享一下这个问题的回答思路。 对了&#xff0c;这个问题…

【保姆级教程】【YOLOv8替换主干网络】【1】使用efficientViT替换YOLOV8主干网络结构

《博主简介》 小伙伴们好&#xff0c;我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源&#xff0c;可关注公-仲-hao:【阿旭算法与机器学习】&#xff0c;共同学习交流~ &#x1f44d;感谢小伙伴们点赞、关注&#xff01; 《------往期经典推…

08-微服务链路追踪案例

4.4.1&#xff1a;环境说明 dubbo provider: 192.168.58.153 dubbo consumer: 192.168.58.154 zookeeper: 192.168.58.1554.4.2: zookeeper 部署 ~$ apt install openjdk-11-jdk -y ~$ wget https://dlcdn.apache.org/zookeeper/zookeeper-3.8.3/apache-zookeeper-3.8.3-bin.…

【计算机组成原理】指令流水线的三种冒险情况(Hazards)

冒险 在计算机架构中&#xff0c;流水线冒险是指在指令流水线的执行过程中由于数据相关性或控制相关性而导致的一种性能问题。指令流水线是将指令执行过程划分为多个阶段&#xff0c;这样可以同时处理多条指令&#xff0c;从而提高指令执行的效率。然而&#xff0c;流水线执行…

新版云进销存ERP销售库存仓库员工管理系统源码

新版云进销存ERP销售库存仓库员工管理系统源码 系统介绍&#xff1a;2022版本,带合同报价单打印&#xff0c;修复子账号不显示新加客户的BUG&#xff0c;还有其他方面的优化。 简单方便。 功能强大&#xff0c;系统采用phpMYSQL开发&#xff0c;B/S架构&#xff0c;方便随地使用…

怎么找微信服务器的IP地址

首先&#xff0c;让微信客户端在PC端运行&#xff0c;在任务管理器->详细信息中&#xff0c;找到WeChat.exe的进程&#xff0c;找到PID 就是微信进程的ID号&#xff0c;如下图所示&#xff1a; 打开一个命令行窗口&#xff0c;cmd或者powershell窗口都可以&#xff0c;输入…

互联网医院系统|北京线上问诊|线上问诊系统功能解析

随着科技的不断发展&#xff0c;线上问诊系统作为一种快速、便捷的医疗服务方式在近年来越来越受欢迎。本文将重点介绍线上问诊系统的开发功能及其优势&#xff0c;帮助读者更好地了解这一医疗服务方式的价值和好处。 一、线上问诊系统的开发功能&#xff1a; 1、患者注册与登…

【2023年度回顾】让我们在新的一年继续努力前行

每当我们在努力的时候都会想&#xff1a;为什么我要努力&#xff1f;躺着不舒服吗&#xff1f; 大家好&#xff01;我是命运之光&#xff0c;一名普普通通的计算机科学与技术专业的大三学生。 &#x1f4d5;回顾一下整个2023年 因为我有每天发朋友圈的习惯&#xff0c;所以这一…

二分搜索边界问题的简单结论

引言 二分搜索是一个说简单也很简单&#xff08;代码很固定&#xff0c;也没几行&#xff09;&#xff0c;说难也很难&#xff08;边界问题可能会让人想不太清楚&#xff09;。 事实上&#xff0c;边界问题也是是算法题中普遍存在的难点。 这篇文章讲两个简单的结论&#xff0…

Head First Design Patterns -工厂模式

什么是工厂模式 工厂方法模式定义了一个创建对象的接口&#xff0c;但由子类来决定要实例化那个类。工厂方法让类把实例化推迟到了子类。 为什么要有工厂模式 书中以pizza店制作pizza为例子&#xff0c;假设不用工厂模式&#xff0c;在制作pizza阶段我们需要这样去实例化类&am…