P1601 A+B Problem(高精)

题目描述

高精度加法,x相当于a+b problem,b不用考虑负数。

输入输出格式

输入格式:

分两行输入a,b<=10^500

输出格式:

输出只有一行,代表A+B的值

输入输出样例

输入样例:

1
1
输出样例:

2

比较简单的高精度。

高精度。顾名思义,就是在很大的位数情况下进行运算。(炸int)

其基本思想就是用数组进行模拟加法。

模拟近位。

最后遍历数组输出。

附代码:

 #include <cstdio>
#include <iostream>
using namespace std; struct diff{
int len;short x[]; void read(){
int len_read;
string read;
cin>>read;
len=;len_read=read.size();
for(int i=len_read-;i>=;i--)x[++len]=read[i]-;
} void write(){
for(int i=len;i>=;i--)printf("%d",x[i]);
printf("\n");
return ;
} struct diff operator+(struct diff tmp){
int c=;
struct diff ans;
ans.len=tmp.len;if(len>ans.len)ans.len=len;
for(int i=;i<=ans.len;i++)
{
ans.x[i]=x[i]+tmp.x[i]+c;
c=ans.x[i]/;ans.x[i]%=;
}
if(c>)ans.x[++ans.len]=c;
return ans;
}
}a,b; int main(){
a.read();b.read();a=a+b;a.write();
return ;
}

我们每个人都应该做到精益求精,所以还可以将普通高精度升华一下

那就是传说中的万进制高精度:

 #include <iostream>
#include <cstdio>
using namespace std;
string s1,s2;
int c,len,len1,a[],len2,b[]; void turn()
{
int x,y,lx=s1.size(),ly=s2.size(),l,r;
int c[],d[];
l=lx/;r=ly/;
x=lx-l*;y=ly-r*;
for(int i=;i<x;i++)c[]=c[]*+s1[i]-;
for(int i=;i<y;i++)d[]=d[]*+s2[i]-;
for(int i=;i<=l+;i++)c[i-(x==)]=(s1[*(i-)+x]-)*+(s1[*(i-)+x+]-)*+(s1[*(i-)+x+]-)*+(s1[*(i-)+x+]-);
for(int i=;i<=r+;i++)d[i-(y==)]=(s2[*(i-)+y]-)*+(s2[*(i-)+y+]-)*+(s2[*(i-)+y+]-)*+(s2[*(i-)+y+]-);
len1=l+(x>);len2=r+(y>);
for(int i=;i<=len1;i++)a[i]=c[len1-i+];
for(int i=;i<=len2;i++)b[i]=d[len2-i+]; } int main()
{
cin>>s1>>s2;
turn();
len=len1;if(len2>len)len=len2;
for(int i=;i<=len;i++)
{
a[i]=a[i]+b[i]+c;
c=a[i]/;
a[i]%=;
}
if(c>)a[++len]=c;
printf("%d",a[len]);
for(int i=len-;i>=;i--)printf("%04d",a[i]);
return ;/*万进制高精加*/
}

万进制高精加要注意输出“printf("%04d",a[i]);”

点个赞吧↓

 

题解 P1601 【A+B Problem(高精)】的更多相关文章

  1. [CEOI2007]树的匹配Treasury(树形DP+高精)

    题意 给一棵树,你可以匹配有边相连的两个点,问你这棵树的最大匹配时多少,并且计算出有多少种最大匹配. N≤1000,其中40%的数据答案不超过 108 题解 显然的树形DP+高精. 这题是作为考试题考 ...

  2. 洛谷 P1601 A+B Problem(高精)

    P1601 A+B Problem(高精) 题目背景 无 题目描述 高精度加法,x相当于a+b problem,[b][color=red]不用考虑负数[/color][/b] 输入输出格式 输入格式 ...

  3. 【洛谷P1601 A+B Problem(高精)】

    题目背景 无 题目描述 高精度加法,x相当于a+b problem,[b][color=red]不用考虑负数[/color][/b] 输入输出格式 输入格式: 分两行输入a,b<=10^500 ...

  4. 【洛谷p1601】A+B Problem(高精)

    高精度加法的思路还是很简单容易理解的 A+B Problem(高精)[传送门] 洛谷算法标签: 附上代码(最近懒得一批) #include<iostream> #include<cs ...

  5. 洛谷1601 A+B Problem(高精) 解题报告

    洛谷1601 A+B Problem(高精) 本题地址:http://www.luogu.org/problem/show?pid=1601 题目背景 无 题目描述 高精度加法,x相当于a+b pro ...

  6. 【题解】洛谷P2532 [AHOI2012]树屋阶梯(卡特兰数+高精)

    洛谷P2532:https://www.luogu.org/problemnew/show/P2532 思路 来自Sooke大佬的推导: https://www.luogu.org/blog/Sook ...

  7. 【题解】洛谷P1066 [NOIP2006TG] 2^k进制数(复杂高精+组合推导)

    洛谷P1066:https://www.luogu.org/problemnew/show/P1066 思路 挺难的一道题 也很复杂 满足题目要求的种数是两类组合数之和 r的最多位数m为 w/k(当w ...

  8. [bzoj2729][HNOI2012]排队 题解 (排列组合 高精)

    Description 某中学有 n 名男同学,m 名女同学和两名老师要排队参加体检.他们排成一条直线,并且任意两名女同学不能相邻,两名老师也不能相邻,那么一共有多少种排法呢?(注意:任意两个人都是不 ...

  9. BZOJ_1002_[FJOI2007]_轮状病毒_(递推+高精)

    描述 http://www.lydsy.com/JudgeOnline/problem.php?id=1002 )*&*(^&*^&*^**()*) 1002: [FJOI20 ...

随机推荐

  1. Java开发笔记(十一)常见的数学函数

    前面介绍了Java编程的四则运算,虽然提供了基础的加减乘除符号,但是数学上还有其它运算符号,包括四舍五入用到的约等号≍.求绝对值的“| |”.开平方的“√ ̄”,这些运算符形态各异,而且并非ASCII码 ...

  2. 【.Net Core】ZipFile类--文件的压缩解压

    NuGet引用官网自带的System.IO.Compression.ZipFile; var filename = "测试压缩解压文件"; var path = Directory ...

  3. 解决ajaxfileupload上传文件在IE浏览器返回data为空问题

    关于ajaxfileupload,建议还是别用,已经没有人维护的脚本了,笔者就是入了这个坑. 在IE浏览器中ajaxfileupload返回data为空 jq.ajaxFileUpload ( { u ...

  4. 使用newtonsoft序列化

    如果将字符串序列化为datatable 时,字符串中包含null,序列化会报错,此时将datatabel 添加到dataset 中,在序列化成字符串,然后在将字符串反序列化成dataset

  5. Ambari Agent 源码分析

    一.ambari-agent 启动方式 Ambari-Agent的启动脚本为/etc/init.d/ambari-agent.该脚本主要实现了start,stop,status,restart,res ...

  6. Javascript数组系列五之增删改和强大的 splice()

    今天是我们介绍数组系列文章的第五篇,也是我们数组系列的最后一篇文章,只是数据系列的结束,所以大家不用担心,我们会持续的更新干货文章. 生命不息,更新不止! 今天我们就不那么多废话了,直接干货开始. 我 ...

  7. LeetCode算法题-Relative Ranks(Java实现)

    这是悦乐书的第248次更新,第261篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第115题(顺位题号是506).根据N名运动员的得分,找到他们的相对等级和得分最高的三个 ...

  8. #018 C语言刷题 素数问题

    今天做题学会了一个求素数的方法 总分 13 孪生素数 相差为2的两个素数称为孪生素数.例如,3与5,41与43等都是孪生素数.设计程序求出指定区间上的所有孪生素数对.区间上限和下限由键盘获取. 程序运 ...

  9. 【Linux基础】查看硬件信息-硬盘

     一.基础知识 1.磁盘分区 磁盘的分区主要分为基本分区(primary partion)和扩充分区(extension partion)两种,基本分区和扩充分区的数目之和不能大于四个.且基本分区可以 ...

  10. 【English 】20190319

     BOKO鼻子['boʊkoʊ] pores毛孔['pɔ:z] cute漂亮可爱[kjut] DEKO-BOKO pores don't make a girl cute! ideal最理想的[aɪˈ ...