NOIP,CSP-J,CSP-S——高精度加减乘除

一、高精度加法

1、大整数的输入

int的范围,正负上下限大约为2.1*10^9;

long long的范围,正负上下限大约为9.2*10^18;

如果整数成千上万位,那么这么大的整数我们如何处理?

方法:先用字符串输入,然后把每一个字符转换成为数字,存到一个int数组里

int数组中的一个位置储存之前整数的一位数字

#include<bits/stdc++.h>
using namespace std;
char s[110];
int a[110];
int main(){scanf("%s",s+1);int len=strlen(s+1);for(int i=1;i<=len;i++){a[i]=s[i]-'0';}
}

例题:

#include<bits/stdc++.h>
using namespace std;
char s[110];
int a[110];
int main(){scanf("%s",s+1);int len=strlen(s+1);for(int i=1;i<=len;i++){a[i]=s[i]-'0';}for(int i=1;i<=len;i++){printf("%d",a[i]);}return 0;
}

 2、大整数翻转

字符串的顺序是从左到右的,而加法运算是从低位到高位(从右到左的),这样的存在数组对后面的运算不方便

例如:9999+5的大数运算

如果这样存储那么,进1的1就得存储到和的数组s[1],那么其他的位数就需要向后移动,而且这样非常的不方便,而且加数2还需要和加数1对齐这样非常的不方便

我们不妨把数组反一下,这样就进1的1可以存储到s[5]

例题:

注意:之前的最后一位变成第一位, a[i]=s[len+1-i]

#include<bits/stdc++.h>
using namespace std;
char s[110];
int a[110];
int main(){scanf("%s",s+1);int len=strlen(s+1);for(int i=1;i<=len;i++){a[i]=s[len+1-i]-'0';}for(int i=1;i<=len;i++){printf("%d",a[i]);}return 0;
}

 3、高精度加法1

例题:大数+个位数

先用一个int数组a存储12345,用int变量b存储8,int数组c存储和 

首先个位相加,c[1]=a[1]+b,结果是13,需要进1;

c[1]保留3,把1给下一位;

c[2]=a[2]+1,结果是5,不需要进位。

c[3],c[4],c[5]同理;

注意:如果是9999+9=10008,需要一直向高位传递;

#include<bits/stdc++.h>
using namespace std;
char s[110];
int a[110],b,c[110];
int main(){//对数组c进行初始化;memset(c,0,sizeof(c)) ;scanf("%s",s+1);scanf("%d",&b);int lena=strlen(s+1),lenc=lena;for(int i=1;i<=lena;i++){a[i]=s[lena+1-i]-'0';}//计算 c[1]=a[1]+b;for(int i=1;i<=lenc;i++){c[i+1]=a[i+1]+c[i]/10;// 表示c[2]=a[2]+1

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

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

相关文章

揭秘Faiss:大规模相似性搜索与聚类的技术神器深度解析!

Faiss&#xff08;由Facebook AI Research开发&#xff09;是一个用于高效相似性搜索和密集向量聚类的库。它用C编写&#xff0c;并提供Python绑定&#xff0c;旨在帮助研究人员和工程师在大规模数据集上进行快速的相似性搜索和聚类操作。 一、介绍&#xff1a; Faiss的核心功…

OSPF认证方式,ISIS简介,ISIS路由器类型

OSPF&#xff1a;转发&#xff0c;泛洪&#xff0c;丢弃

ROS 2边学边练(33)-- 写一个静态广播(C++)

前言 通过这一篇我们将了解并学习到如何广播静态坐标变换到tf2&#xff08;由tf2来转换这些坐标系&#xff09;。 发布静态变换对于定义机器人底座与其传感器或非移动部件之间的关系非常有用。例如&#xff0c;在以激光扫描仪中心的坐标系中推理激光扫描测量数据是最简单的。 这…

C++学习进阶版(一):用C++写简单的状态机实现

目录 一、基础知识 1、状态机 2、四大要素 3、描述方式 4、设计步骤 5、实现过程中需注意 &#xff08;1&#xff09; 状态定义 &#xff08;2&#xff09; 状态转换规则 &#xff08;3&#xff09; 输入处理 &#xff08;4&#xff09; 状态机的封装 &#xff08;5…

本地部署Docker容器可视化图形管理工具DockerUI并实现无公网IP远程访问——“cpolar内网穿透”

文章目录 前言1. 安装部署DockerUI2. 安装cpolar内网穿透3. 配置DockerUI公网访问地址4. 公网远程访问DockerUI5. 固定DockerUI公网地址 前言 DockerUI是一个docker容器镜像的可视化图形化管理工具。DockerUI可以用来轻松构建、管理和维护docker环境。它是完全开源且免费的。基…

路由过滤与引入

1、实验拓扑 2、实验要求 1、按照图示配置 IP 地址&#xff0c;R1&#xff0c;R3&#xff0c;R4 上使用 1oopback口模拟业务网段 2、运行 oSPF&#xff0c;各自协议内部互通 3、R1 和 R2 运行 RIPv2,R2&#xff0c;R3和R4在 RIP 和 oSPF 间配置双向路由引入,要求除 R4 上的业务…

基于51单片机的温度、烟雾、防盗、GSM上报智能家居系统

基于51单片机的智能家居系统 &#xff08;仿真&#xff0b;程序&#xff0b;原理图&#xff0b;设计报告&#xff09; 功能介绍 具体功能&#xff1a; 1.DS18B20检测温度&#xff0c;MQ-2检测烟雾、ADC0832实现模数转换&#xff1b; 2.按键可以设置温度、烟雾浓度阈值&#x…

【Java--数据结构】提升你的编程段位:泛型入门指南,一看就会!

前言 泛型是一种编程概念&#xff0c;它允许我们编写可以适用于多种数据类型的代码。通过使用泛型&#xff0c;我们可以在编译时期将具体的数据类型作为参数传递给代码&#xff0c;从而实现代码的复用和灵活性。 在传统的编程中&#xff0c;我们通常需要为不同的数据类型编写不…

10 JavaScript学习:函数

函数的概念 JavaScript中的函数是一段可重复使用的代码块&#xff0c;它接受输入&#xff08;称为参数&#xff09;&#xff0c;执行特定的任务&#xff0c;并返回一个值。函数可以被调用&#xff08;或者说被执行&#xff09;&#xff0c;并且可以接受不同的输入来产生不同的…

提升效率!微信自动统计数据报表,轻松实现!

在数字化时代&#xff0c;提高工作效率是每个人的追求。下面就给大家分享一个能够自动统计微信号运营数据的神器——个微管理系统&#xff0c;让大家无需手动整理和计算&#xff0c;提高工作效率&#xff01; 1、好友统计报表 它分为通讯录好友统计、新增好友统计和删除好友统…

python创建线程和结束线程

&#x1f47d;发现宝藏 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。【点击进入巨牛的人工智能学习网站】。 python创建线程和结束线程 在 Python 中&#xff0c;线程是一种轻量级的执行单元&#xff…

Mysql 存在多条数据,按时间取最新的那一组数据

1、数据如下&#xff0c;获取每个用户最近的一次登录数据 思路1&#xff1a;order by group by 先根据UserIdLogInTime排序&#xff0c;再利用Group分组&#xff0c;即可得到每个User_Id的最新数据。 1 SELECT * FROM login_db l ORDER BY l.user_id, l.login_time DESC; 排…

【Linux】实现一个进度条

我们之前也学了gcc/vim/make和makefile&#xff0c;那么我们就用它们实现一个进度条。 在实现这个进度条之前&#xff0c;我们要先简单了解一下缓冲区和回车和换行的区别 缓冲区其实就是一块内存空间&#xff0c;我们先看这样一段代码 它的现象是先立马打印&#xff0c;三秒后程…

使用表格法插入公式和编号

如何将公式和编号优雅地插入到论文当中呢&#xff1f; 首先插入一个1行2列的表格 调整一下 输入公式方法一&#xff1a;感觉墨迹公式挺好用的&#xff0c;word自带的 输入公式方法二&#xff1a;图片转LATEX代码 这个方法更快 分享一个公式识别网站 图片识别得到LATEX代码&…

惠海H6212L DCDC同步降压芯片IC 24V30V36V48V转3.3V5V12V3A大电流方案 带线损

同步降压芯片IC 24V30V36V48V转3.3V5V12V3A大电流方案是一种电源管理方案&#xff0c;它采用同步整流技术&#xff0c;将较高的输入电压&#xff08;如24V、30V、36V、48V&#xff09;转换为较低的输出电压&#xff08;如3.3V、5V、12V&#xff09;&#xff0c;并提供高达3A的大…

代码随想录训练营Day 29|Python|Leetcode|● 860.柠檬水找零 ● 406.根据身高重建队列 ● 452. 用最少数量的箭引爆气球

860.柠檬水找零 在柠檬水摊上&#xff0c;每一杯柠檬水的售价为 5 美元。顾客排队购买你的产品&#xff0c;&#xff08;按账单 bills 支付的顺序&#xff09;一次购买一杯。 每位顾客只买一杯柠檬水&#xff0c;然后向你付 5 美元、10 美元或 20 美元。你必须给每个顾客正确…

openGauss学习笔记-269 openGauss性能调优-TPCC性能调优测试指导-数据库服务端及客户端绑核

文章目录 openGauss学习笔记-269 openGauss性能调优-TPCC性能调优测试指导-数据库服务端及客户端绑核269.1 安装openGauss数据库269.2 停止数据库269.3 使用gs_guc工具修改数据库端口、IP等269.4 使用gs_guc工具设置如下参数269.5 执行如下命令以绑核方式启动服务端数据库269.6…

【计算机毕业设计】药品销售系统产品功能介绍——后附源码

&#x1f389;**欢迎来到我的技术世界&#xff01;**&#x1f389; &#x1f4d8; 博主小档案&#xff1a; 一名来自世界500强的资深程序媛&#xff0c;毕业于国内知名985高校。 &#x1f527; 技术专长&#xff1a; 在深度学习任务中展现出卓越的能力&#xff0c;包括但不限于…

手把手教数据结构与算法:有序线性表设计

问题描述 设计一个有序线性表类&#xff0c;要求完成初始化&#xff0c;插入和遍历功能&#xff0c;使得表内元素实现有序排列&#xff08;从小到大&#xff09;。同时实现合并功能&#xff0c;使得两个线性表能够合并为一个线性表&#xff08;可能存在重复元素&#xff09;。…

半导体存储器整理

半导体存储器用来存储大量的二值数据&#xff0c;它是计算机等大型数字系统中不可缺少的组成部分。按照集成度划分&#xff0c;半导体存储器属于大规模集成电路。 目前半导体存储器可以分为两大类&#xff1a; 只读存储器&#xff08;ROM&#xff0c;Read Only Memory&#xff…