Description

 

Input

输入A,B
 

Output

输出A+B。

Sample Input

1 1

Sample Output

2

HINT

对于100%的数据,保证 |A| , |B| 不会超过10^(10^7)

呃……高精a+b和a-b的模板题

没啥技术含量的……我还以为会有什么--0之类的出现

  1. #include<cstdio>
  2. #include<cstring>
  3. #define N 10000010
  4. int a[N],b[N],c[N],l1,l2,l3;
  5. char ch1[N],ch2[N];
  6. bool m1,m2;
  7. inline int max(int a,int b){return a>b?a:b;}
  8. int main()
  9. {
  10. scanf("%s",ch1+1);l1=strlen(ch1+1);
  11. scanf("%s",ch2+1);l2=strlen(ch2+1);
  12. if (ch1[1]=='-'){l1--;m1=1;}
  13. if (ch2[1]=='-'){l2--;m2=1;}
  14. for (int i=1;i<=l1;i++)a[i]=ch1[l1-i+1+m1]-'0';
  15. while (!a[l1]&&l1>1)l1--;
  16. if (l1==1&&!a[1])m1=0;
  17. for (int i=1;i<=l2;i++)b[i]=ch2[l2-i+1+m2]-'0';
  18. while (!b[l2]&&l2>1)l2--;
  19. if (l2==1&&!b[1])m2=0;
  20. l3=max(l1,l2);
  21. if (m1^m2)
  22. {
  23. if (m1)
  24. {
  25. for (int i=1;i<=l3;i++)
  26. {
  27. int t=a[i];
  28. a[i]=b[i];
  29. b[i]=t;
  30. }
  31. int t=l1;l1=l2;l2=t;
  32. }
  33. bool mrk=0;
  34. if (l2>l1)mrk=1;
  35. else if (l1==l2)
  36. {
  37. for (int i=l1;i>=1;i--)
  38. if (a[i]<b[i]){mrk=1;break;}
  39. else if (a[i]>b[i])break;
  40. }
  41. if (mrk)
  42. {
  43. printf("-");
  44. for (int i=1;i<=l3;i++)
  45. {
  46. int t=a[i];
  47. a[i]=b[i];
  48. b[i]=t;
  49. }
  50. int t=l1;l1=l2;l2=t;
  51.  
  52. }
  53. for (int i=1;i<=l3;i++)
  54. {
  55. a[i]-=b[i];
  56. if (a[i]<0)
  57. {
  58. a[i]+=10;
  59. int p=i+1;
  60. while (a[p]==0)
  61. {
  62. a[p]=9;
  63. p++;
  64. }
  65. a[p]--;
  66. }
  67. }
  68. while (l3>1&&!a[l3])l3--;
  69. for (int i=l3;i>=1;i--)
  70. printf("%d",a[i]);
  71. }else
  72. {
  73. if (m1&&m2)printf("-");
  74. for (int i=1;i<=l3;i++)
  75. {
  76. c[i]+=a[i]+b[i];
  77. if (c[i]>9)
  78. {
  79. c[i]-=10;
  80. c[i+1]++;
  81. }
  82. }
  83. if (c[l3+1])l3++;
  84. for (int i=l3;i>=1;i--)
  85. printf("%d",c[i]);
  86. }
  87. }

bzoj3767 A+B Problem加强版的更多相关文章

  1. bzoj3767A+B Problem加强版

    bzoj3767A+B Problem加强版 题意: 求两个数的和,每个数绝对值≤10^(10^7). 题解: 又用Python水过了…… 代码: a=raw_input() b=a.split() ...

  2. 打FFT时中发现的卡常技巧

    题目:洛谷P1919 A*B Problem 加强版 我的代码完全借鉴boshi,然而他380ms我880ms...于是我通过彻底的卡(chao)常(dai)数(ma)成功优化到了380ms,都是改了 ...

  3. bzoj AC倒序

    Search GO 说明:输入题号直接进入相应题目,如需搜索含数字的题目,请在关键词前加单引号 Problem ID Title Source AC Submit Y 1000 A+B Problem ...

  4. 算法笔记_093:蓝桥杯练习 Problem S4: Interesting Numbers 加强版(Java)

    目录 1 问题描述 2 解决方案   1 问题描述 Problem Description We call a number interesting, if and only if: 1. Its d ...

  5. java实现 蓝桥杯 算法提高 Problem S4: Interesting Numbers 加强版

    1 问题描述 Problem Description We call a number interesting, if and only if: 1. Its digits consists of o ...

  6. HDU 4578 - Transformation - [加强版线段树]

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4578 Problem Description Yuanfang is puzzled with the ...

  7. POJ 3294 Life Forms [最长公共子串加强版 后缀数组 && 二分]

    题目:http://poj.org/problem?id=3294 Life Forms Time Limit: 5000MS   Memory Limit: 65536K Total Submiss ...

  8. 3551: [ONTAK2010]Peaks加强版

    3551: [ONTAK2010]Peaks加强版 https://www.lydsy.com/JudgeOnline/problem.php?id=3551 分析: kruskal重构树 +  倍增 ...

  9. 贞鱼传教&&贞鱼传教(数据加强版)

    http://acm.buaa.edu.cn/problem/1381/ 贞鱼传教[问题描述] 新的一年到来了,贞鱼哥决定到世界各地传授“贞教”,他想让“贞教”在2016年成为世界第四大宗教.说干就干 ...

随机推荐

  1. C++中的构造函数和析构函数

    构造函数: 在类实例化对象时自动执行,对类中的数据进行初始化.构造函数可以从载,可以有多个,但是只能有一个缺省构造函数. 析构函数: 在撤销对象占用的内存之前,进行一些操作的函数.析构函数不能被重载, ...

  2. MVC项目,系统找不到指定的文件。(异常来自 HRESULT:0x80070002)

    今天在用Visual Studio新建MVC项目的时候,遇到错误 系统找不到指定的文件.(异常来自 HRESULT:0x80070002) 解决办法:工具--> 扩展和更新 -->联机(V ...

  3. Repeater的ItemDataBound 事件中e.Item.DataItem 的数据类型

    1.使用DataSet和DataTable绑定数据源时 DataRowView view = (DataRowView)e.Item.DataItem; 2.DataReader绑定数据源时 Syst ...

  4. php锁表

    用PHP实现mysql锁表 mysql锁表,是利用相关的SQL语句 //执行SQL语句 锁掉userinfo表 $sql = "LOCK TABLES userinfo WRITE" ...

  5. eclipse中build path 中JDK与java compiler compliance level的问题(转)

    roject facets做什么用? http://baike.baidu.com/view/6257360.htm,其实我感觉,就是让我们在创建项目时候,可以独立定义一个有一个模板供我们使用,在里面 ...

  6. ORACLE日期加减【转】

    首先,感谢这个作者的辛勤汗水给我们带来的总结,因为日期函数操作对平时的使用真的是很常用,所以收藏一下以作后期使用. 原贴地址:http://www.cnblogs.com/xiao-yu/archiv ...

  7. Ehcache入门(一)——开发环境的搭建

    EhCache 是一个纯Java的进程内缓存框架,具有快速.精干等特点,是Hibernate中默认的CacheProvider. 那么.如何搭建Ehcache的开发环境呢? 1.下载相关的jar包,这 ...

  8. printf格式输出总结

    #include<stdio.h>    #include<string.h>    int main()    {        ];        ;       floa ...

  9. Android触摸事件的分发机制

    ---恢复内容开始--- 一.MotionEvent : ACTION_DOWN(下按事件).ACTION_UP(松开事件).ACTION_MOVE(移动事件) 二.三大函数 1.dispatchTo ...

  10. 托盘图标、气泡以及任务栏崩溃后的自动添加——Shell_NotifyIcon

    托盘图标使用函数 Shell_NotifyIcon 创建.修改和删除,参数主要使用 NOTIFYICONDATA 结构. 任务栏启动时会给所有顶层窗口发送 TaskbarCreated 消息,由于不同 ...