高精度系列

高精度加法

#include <cstdio>
#include <cstring>
#include <iostream>
using namespace std;
string a,b;
int la,lb,lm,as[210],bs[210],cs[210],x=0;
int main()
{
    cin>>a>>b;
    la=a.size();lb=b.size();
    for(int i=0;i<la;i++)as[la-i]=a[i]-‘0‘;
    for(int i=0;i<lb;i++)bs[lb-i]=b[i]-‘0‘;

    lm=1;
    while(lm<=la||lm<=lb){
        cs[lm]=as[lm]+bs[lm]+x;
        x=cs[lm]/10;
        cs[lm]%=10;
        lm++;
        }
    cs[lm]=x;
    int ii;
    for(ii=lm;;ii--)if(cs[ii]!=0)break;
    for(int i=ii;i>=1;i--)cout<<cs[i];
}

高精度减法(被减数大于减数)

#include <cstdio>
#include <cstring>
#include <iostream>
using namespace std;
string a,b;
int la,lb,lm,as[210],bs[210],cs[210],x=0;
int main()
{
    cin>>a>>b;
    if(a==b){
        cout<<0<<endl;
        return 0;
    }
    la=a.size();lb=b.size();
    for(int i=0;i<la;i++)as[la-i]=a[i]-‘0‘;
    for(int i=0;i<lb;i++)bs[lb-i]=b[i]-‘0‘;

    lm=1;
    while(lm<=la||lm<=lb){
        cs[lm]=as[lm]-bs[lm];
        cs[lm]%=10;
        lm++;
        }
    for(int i=0;i<=lm;i++)if(cs[i]<0){
        cs[i]+=10;
        cs[i+1]--;
    }
    int ii;
    for(ii=lm;;ii--)if(cs[ii]!=0)break;
    for(int i=ii;i>=1;i--)cout<<cs[i];
}
时间: 2024-08-28 21:34:32

高精度系列的相关文章

ATS-2000C系列高精度电流源在陀螺测试中的应用

随着惯性导航系统的快速发展,陀螺仪作为惯性导航系统的核心,其性能决定了惯性导航系统的性能.随着现代物理的快速发展,尤其是量子调控等领域的飞速进步,有着高精度.小体积.低功耗和低成本等优点的核磁共振陀螺成为重要的研究方向.核磁共振陀螺(NMRG)是利用激光与核磁共振气室中的碱金属原子和惰性气体原子的相互作用使核子以拉莫尔频率进动,并通过磁场驱动技术对气室磁场实现闭环控制和对剩磁进行补偿来维持核子的共振状态,进而能够检测载体的角速度信息,实现陀螺仪的功能.因此高精度的磁场驱动电路是作为磁场闭环控制的

Aigtek电压,ATS-2000V系列高精度电压源

理想的电压基准源应该具有完美的初始精度,并且在 负载电流 .温度和时间变化时电压保持稳定不变.实际应用中,设计人员必须在初始电压精度.电压温漂.迟滞以及供出/吸入电流的能力.静态电流(即功率消耗).长期稳定性.噪声和成本等指标中进行权衡与折衷.最大输出电压200V高精度.高稳定性电压输出连续可调,精度高达4?位最小电压输出分辨率2μVATS-2000V系列是一款高精度.高稳定性电压输出的电压源.最大输出200V的电压,最小电压分辨率可达2μV,输出精度高,噪声低.操作面板液晶显示,简洁易懂,易于

Linux时间子系统之六:高精度定时器(HRTIMER)的原理和实现

上一篇文章,我介绍了传统的低分辨率定时器的实现原理.而随着内核的不断演进,大牛们已经对这种低分辨率定时器的精度不再满足,而且,硬件也在不断地发展,系统中的定时器硬件的精度也越来越高,这也给高分辨率定时器的出现创造了条件.内核从2.6.16开始加入了高精度定时器架构.在实现方式上,内核的高分辨率定时器的实现代码几乎没有借用低分辨率定时器的数据结构和代码,内核文档给出的解释主要有以下几点: 低分辨率定时器的代码和jiffies的关系太过紧密,并且默认按32位进行设计,并且它的代码已经经过长时间的优化

Android RakNet 系列之二 功能介绍

简介 RakNet 已经成功地在Android平台上测试成功.RakNet的文档很多,实现起来很简单,下面对Raknet功能细节进行详细了解. 详情 1.RakNet使用哪些数据结构? 结构文件 描述 DS_BinarySearchTree.h 二叉搜索树,以及AVL平衡二叉搜索树 DS_BPlusTree.h B+树,用于快速查询,删除,和插入 DS_BytePool.h 返回某个大小门限的数据块,减少内存碎片 DS_ByteQueue.h 用于读写字节的队列 DS_Heap.h 堆数据结构体

D&amp;F学数据结构系列——红黑树

红黑树 定义:一棵二叉查找树如果满足下面的红黑性质,则为一棵红黑树: 1)每个结点不是红的就是黑的 2)根结点是黑的 3)每个叶结点是黑的 4)如果一个结点是红的,它的两个儿子都是黑的(即不可能有两个连续的红色结点) 5)对于每个结点,从该结点到其子孙结点的所有路径上包含相同数目的黑结点 性质: 这些约束确保了红黑树的关键特性: 从根到叶子的最长的可能路径不多于最短的可能路径的两倍长.结果是这个树大致上是平衡的.因为操作比如插入.删除和查找某个值的最坏情况时间都要求与树的高度成比例,这个在高度上

BigInteger类(高精度整型)

位置:java.math.BigInteger 作用:提供高精度整型数据类型及相关操作 一.基本介绍 BigInteger为不可变的任意精度的整数. 所有操作中,都以二进制补码形式表示 BigInteger(同Java 的基本整数类型). 提供所有 Java 的基本整数操作符(* / + -等等)的对应物(一堆函数). 提供 java.lang.Math 的所有相关方法,此外还提供模算术.GCD 计算.质数测试.素数生成.位操作以及一些其他操作. 算术运算.逐位逻辑运算的语义完全模仿 Java

自定义View基础 - 最易懂的自定义View原理系列(1)

前言 自定义View原理是Android开发者必须了解的基础: 在了解自定义View之前,你需要有一定的知识储备: 本文将全面解析关于自定义View中的所有知识基础. 目录 1. View的分类 视图View主要分为两类: 类别 解释 特点 单一视图 即一个View,如TextView 不包含子View 视图组 即多个View组成的ViewGroup,如LinearLayout 包含子View 2. View类简介 View类是Android中各种组件的基类,如View是ViewGroup基类

高精度定时器实现 z

1背景Permalink .NET Framework 提供了四种定时器,然而其精度都不高(一般情况下 15ms 左右),难以满足一些场景下的需求. 在进行媒体播放.绘制动画.性能分析以及和硬件交互时,可能需要 10ms 以下精度的定时器.这里不讨论这种需求是否合理,它是确实存在的问题,也有相当多的地方在讨论,说明这是一个切实的需求.然而,实现它并不是一件轻松的事情. 这里并不涉及内核驱动层面的定时器,只分析在 .NET 托管环境下应用层面的高精度定时器实现. Windows 不是实时操作系统,

Spark入门实战系列--1.Spark及其生态圈简介

[注]该系列文章以及使用到安装包/测试数据 可以在<倾情大奉送--Spark入门实战系列>获取 1.简介 1.1 Spark简介 Spark是加州大学伯克利分校AMP实验室(Algorithms, Machines, and People Lab)开发通用内存并行计算框架.Spark在2013年6月进入Apache成为孵化项目,8个月后成为Apache顶级项目,速度之快足见过人之处,Spark以其先进的设计理念,迅速成为社区的热门项目,围绕着Spark推出了Spark SQL.Spark St