高精度加法(大位相加)

 #include <bits/stdc++.h>
using namespace std;
int main()
{
char a1[],b1[];
int a[],b[],c[];//a,b,c分别存储加数,加数,结果
int lena,lenb,lenc,x,i;
memset(a,,sizeof(a));//数组a清零
memset(b,,sizeof(b));//数组b清零
memset(c,,sizeof(c));//数组c清零
//gets(a1);
//gets(b1);
//getchar();
while(scanf("%s%s",&a1,&b1)!=EOF)
{
lena=strlen(a1);
lenb=strlen(b1);
for(i=;i<=lena;i++)
a[lena-i]=a1[i]-'';//将数串a1转化为数组a,并倒序存储
//a[i]=a1[lena-i-1]-48;
for(i=;i<=lenb;i++)
b[lenb-i]=b1[i]-'';//将数串a1转化为数组a,并倒序存储
//b[i]=b1[lenb-i-1]-48;
lenc=; //lenc表示第几位
x=; //x是进位
while(lenc<=lena||lenc<=lenb)
{
c[lenc]=a[lenc]+b[lenc]+x;//第lenc位相加并加上次的进位
x=c[lenc]/;//向高位进位
c[lenc]%=;//存储第lenc位的值
lenc++;//位置下标变量
}
c[lenc]=x;
if(c[lenc]==)
lenc--; //处理最高进位
for(i=lenc;i>=;i--)
cout<<c[i];
cout<<endl;
}
return ;
}

高精度减法(大位相减)

 #include <bits/stdc++.h>
using namespace std;
int main()
{
char n[],n1[],n2[];
int a[],b[],c[];
int lena,lenb,lenc,i;
memset(a,,sizeof(a));
memset(b,,sizeof(b));
memset(c,,sizeof(c));
while(scanf("%s%s",&n1,&n2)!=EOF)//n1为被减数,n2为减数
{
if(strlen(n1)<strlen(n2)||(strlen(n1)==strlen(n2)&&strcmp(n1,n2)<))//strcmp()为字符串比较函数,当n1==n2,返回0;n1>n2时,返回正整数;n1<n2时,返回负整数
{
strcpy(n,n1);//将n1数组的值完全赋值给n数组
strcpy(n1,n2);
strcpy(n2,n);//处理被减数和减数时,交换被减数和减数
cout<<"-";//交换了减数和被减数,结果为负数
}
lena=strlen(n1);
lenb=strlen(n2);
for(i=;i<=lena;i++)
a[lena-i]=(int)(n1[i]-'');//被减数放入数组a中
for(i=;i<=lenb;i++)
b[lenb-i]=(int)(n2[i]-'');//减数放入数组b中
i=;
while(i<=lena||i<=lenb)
{
if(a[i]<b[i])
{
a[i]+=;//不够减,那么向高位借1当10
a[i+]--;
}
c[i]=a[i]-b[i];//对应位相减
i++;
}
lenc=i;
while((c[lenc]==)&&(lenc>))
lenc--;//最高位的0不输出
for(i=lenc;i>=;i--)
cout<<c[i];//输出结果
cout<<endl;
}
return ;
}

信息学奥赛一本通算法(C++版)基础算法:高精度计算的更多相关文章

  1. 2019寒假练题计划——LibreOJ刷题计划 &《信息学奥赛一本通》提高版题目

    目录 2019.1.27 #10082. 「一本通 3.3 例 1」Word Rings 题意 思路 #10083. 「一本通 3.3 例 2」双调路径 题意 思路 #10084. 「一本通 3.3 ...

  2. $ybt\ 【信息学奥赛一本通】题解目录$

    [信息学奥赛一本通]题解目录 $ \large -> OJ$ $ problem1000 $ \(Answer\) - > $ \large 1000$ $ problem1001 $ \ ...

  3. PHP算法之四大基础算法

    前言 虽然工作中,你觉得自己并没有涉及到算法这方面的东西,但是算法是程序的核心,一个程序的好与差,关键是这个程序算法的优劣,所以对于冒泡排序.插入排序.选择排序.快速排序这四种基本算法,我想还是要掌握 ...

  4. 信息学奥赛一本通 提高篇 序列第k个数 及 快速幂

    我是传送门 这个题首先是先判断是等差还是等比数列 等差的话非常简单: 前后两个数是等差的,举个栗子: 3 6 9 12 这几个数,(我感觉 1 2 3 4并说明不了什么) 每次都加3嘛,很容易看出,第 ...

  5. 【11NOIP提高组】选择客栈(信息学奥赛一本通 1546)(洛谷 1311)

    题目描述 丽江河边有nn家很有特色的客栈,客栈按照其位置顺序从 11到nn编号.每家客栈都按照某一种色调进行装饰(总共 kk 种,用整数 00 ~k-1k−1 表示),且每家客栈都设有一家咖啡店,每家 ...

  6. 【04NOIP普及组】火星人(信息学奥赛一本通 1929)(洛谷 1088)

    [题目描述] 人类终于登上了火星的土地并且见到了神秘的火星人.人类和火星人都无法理解对方的语言,但是我们的科学家发明了一种用数字交流的方法.这种交流方法是这样的,首先,火星人把一个非常大的数字告诉人类 ...

  7. 鱼塘钓鱼(fishing)(信息学奥赛一本通 1373)

    [问题描述] 有N个鱼塘排成一排(N<100),每个鱼塘中有一定数量的鱼,例如:N=5时,如下表: 即:在第1个鱼塘中钓鱼第1分钟内可钓到10条鱼,第2分钟内只能钓到8条鱼,……,第5分钟以后再 ...

  8. 【03NOIP普及组】麦森数(信息学奥赛一本通 1925)(洛谷 1045)

    [题目描述] 形如2P-1的素数称为麦森数,这时P一定也是个素数.但反过来不一定,即如果P是个素数,2P-1不一定也是素数.到1998年底,人们已找到了37个麦森数.最大的一个是P=3021377,它 ...

  9. 【信息学奥赛一本通】第三部分_队列 ex2_3produce 产生数

    给出一个整数n(n<=2000)(代码可适用n<=10^31)和k个变换规则(k<=15). 规则:1.1个数字可以变换成另1个数字: 2.规则中右边的数字不能为零. BFS #in ...

随机推荐

  1. Fiori缓存与它的清除

    最近在修改已有的Fiori应用,遇到了缓存上的一点问题,导致对Fiori应用的代码修改不能在前端页面生效.现将自己查到的一篇好资料翻译过来,以供参考.以下为正文. 2017.12.19更新:最近又遇到 ...

  2. Hive实际应用小结

    1.简介 Hive是数据仓库平台,构建在Hadoop之上用来处理结构化数据.Hive是一个SQL解析引擎,能够将SQL语句转化成MapReduce作业并在Hadoop上执行,从而使得查询和分析更加方便 ...

  3. 【Zookeeper】源码分析之服务器(一)

    一.前言 前面已经介绍了Zookeeper中Leader选举的具体流程,接着来学习Zookeeper中的各种服务器. 二.总体框架图 对于服务器,其框架图如下图所示 说明: ZooKeeperServ ...

  4. php中static 静态关键字

    一直依赖对于php中static关键字比较模糊,只是在单例模式中用过几次.上网查了查,没有找到很全的介绍,自己总结一下. 根据使用位置分为两部分 1.函数体中的静态变量 2.类中的静态属性和方法 1 ...

  5. ElasticSearch 学习记录之ES如何操作Lucene段

    近实时搜索 提交(Commiting)一个新的段到磁盘需要一个 fsync 来确保段被物理性地写入磁盘,这样在断电的时候就不会丢失数据.但是每次提交的一个新的段都fsync 这样操作代价过大.可以使用 ...

  6. eslint常见规则总结

    google: eslint+rules es6: impot When you import the module's default, don't use brace {} 意思是,当你使用默认的 ...

  7. Oracle ADG搭建

    Oracle Active Data Guard搭建 一:安装 1.基础环境配置 1.1.开启强制日志记录 DG日志发送方式中ARCH进程和LGWR进程的ASYNC模式都是基于日志同步的,所以我们必须 ...

  8. 轻量级quill富文本编辑器

    因为公司产品需要在移动端编辑文本,所以发现了这个轻量级的好东西,网上也没找到比较好的案例,就自己总结了下,有兴趣的直接复制代码运行看看就知道啦! 下面是quill.js的CDN加速地址: <!- ...

  9. Java Serializable接口(序列化)理解及自定义序列化

      1 Serializable接口 (1)简单地说,就是可以将一个对象(标志对象的类型)及其状态转换为字节码,保存起来(可以保存在数据库,内存,文件等),然后可以在适当的时候再将其状态恢复(也就是反 ...

  10. Sql 的 RAISERROR用法

    http://www.yesky.com/imagesnew/software/tsql/ts_ra-rz_5ooi.htm RAISERROR 返回用户定义的错误信息并设系统标志,记录发生错误.通过 ...