题解 P1601 【A+B Problem(高精)】
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(高精)】的更多相关文章
- [CEOI2007]树的匹配Treasury(树形DP+高精)
题意 给一棵树,你可以匹配有边相连的两个点,问你这棵树的最大匹配时多少,并且计算出有多少种最大匹配. N≤1000,其中40%的数据答案不超过 108 题解 显然的树形DP+高精. 这题是作为考试题考 ...
- 洛谷 P1601 A+B Problem(高精)
P1601 A+B Problem(高精) 题目背景 无 题目描述 高精度加法,x相当于a+b problem,[b][color=red]不用考虑负数[/color][/b] 输入输出格式 输入格式 ...
- 【洛谷P1601 A+B Problem(高精)】
题目背景 无 题目描述 高精度加法,x相当于a+b problem,[b][color=red]不用考虑负数[/color][/b] 输入输出格式 输入格式: 分两行输入a,b<=10^500 ...
- 【洛谷p1601】A+B Problem(高精)
高精度加法的思路还是很简单容易理解的 A+B Problem(高精)[传送门] 洛谷算法标签: 附上代码(最近懒得一批) #include<iostream> #include<cs ...
- 洛谷1601 A+B Problem(高精) 解题报告
洛谷1601 A+B Problem(高精) 本题地址:http://www.luogu.org/problem/show?pid=1601 题目背景 无 题目描述 高精度加法,x相当于a+b pro ...
- 【题解】洛谷P2532 [AHOI2012]树屋阶梯(卡特兰数+高精)
洛谷P2532:https://www.luogu.org/problemnew/show/P2532 思路 来自Sooke大佬的推导: https://www.luogu.org/blog/Sook ...
- 【题解】洛谷P1066 [NOIP2006TG] 2^k进制数(复杂高精+组合推导)
洛谷P1066:https://www.luogu.org/problemnew/show/P1066 思路 挺难的一道题 也很复杂 满足题目要求的种数是两类组合数之和 r的最多位数m为 w/k(当w ...
- [bzoj2729][HNOI2012]排队 题解 (排列组合 高精)
Description 某中学有 n 名男同学,m 名女同学和两名老师要排队参加体检.他们排成一条直线,并且任意两名女同学不能相邻,两名老师也不能相邻,那么一共有多少种排法呢?(注意:任意两个人都是不 ...
- BZOJ_1002_[FJOI2007]_轮状病毒_(递推+高精)
描述 http://www.lydsy.com/JudgeOnline/problem.php?id=1002 )*&*(^&*^&*^**()*) 1002: [FJOI20 ...
随机推荐
- 设计模式之Builder建造者模式 代码初见
public class EmployeeBuilder { private int id = 1; private string firstname = "first"; pri ...
- 4-4 Redis 的常用配置
2016-12-22 15:30:43 本篇文章属于Redis 系列第四篇文章:Redis 配置文件介绍 该系列文章链接 NoSQL 数据库简介 Redis的安装及及一些杂项基础知识 Redis 的常 ...
- js函数前面的+,!
+function(){}(); 这里的加号,也可以替换成!,~等其他一元操作符,其效果相当于: (function() { console.log("Foo!"); })(); ...
- Go开发之路 -- 指针类型
1. 普通类型,变量存的就是值,也叫值类型 2. 获取变量的地址,用&,比如: var a int, 获取a的地址:&a 3. 指针类型,变量存的是一个地址,这个地址存的才是值 4. ...
- linux学习笔记-linux主机上传下载文件至linux虚拟机的方法
我的邮箱地址:zytrenren@163.com欢迎大家交流学习纠错! 1.上传文件 scp -r file 用户名@ip地址:目标目录 2.下载文件 scp -r 用户名@ip地址:文件 目标目录
- java 线程方法 ---- join()
class MyThread2 implements Runnable{ @Override public void run() { for (int i = 0; i < 5; i++){ S ...
- Servlet工作原理解析 《深入分析java web 技术内幕》第九章
参考关于servblet的相关文章 侧重概况:https://blog.csdn.net/levycc/article/details/50728921 ibm的相关:https://www.ibm. ...
- react基础语法二
这里只是对自己的学习进行一次总结,也是为了让自己以后如果长时间不使用快速记忆起来的笔记,如果想要学习,还是去官网看文档比较好一些.. 注意 下面的代码的 script标签的type类型都为 “text ...
- 容器化系列 - 通过Grafana监测InfluxDB数据 on Docker
本文演示在Docker中运行Grafana和InfluxDB,并通过Grafana展示InfluxDB曲线图. 1 准备工作 1.1 安装Docker 请参考这里 1.2 下载镜像 $ docker ...
- SQL Server 迁移至MySQL 关键步骤的梳理总结
迁移主要是通过Navicat工具来实现的.迁移工具的选定在此不讨论. 迁移前准备 1.提前通知DBA\SA\BI等,并确认发布计划及数据库迁移方案. 2.梳理出SQL Server DB 中影响业务 ...