#include<iostream>
#include<string>
using namespace std;
#define MAXN 10001
int a[MAXN]={},b[MAXN]={};
bool init(int a[])
{
int i;
string s;
cin>>s;
a[]=s.length();
if(s[]=='-')
{
//a[0]--;
for(i=;i<=a[];i++)
a[i]=s[a[]-i]-'';
a[a[]]=;
a[]--;
return false;
}
else
{
for(i=;i<=a[];i++)
a[i]=s[a[]-i]-'';
return true;
}
}
void print(int a[])
{
int i;
if (a[]==){cout<<<<endl;return;}
for(i=a[];i>;i--) cout<<a[i];
cout<<endl;
return ;
}
void jia(int a[],int b[])
{ int i,k;
if(a[]<b[])a[]=b[];
for(i=;i<=a[];i++) a[i]+=b[i];
for(i=;i<=a[];i++)
{
a[i+]+=a[i]/;
a[i]%=;
}
if(a[a[]+]>) a[]++;
}
int compare (int a[],int b[])
{ int i;
if (a[]>b[]) return ;//a的位数大于b则a比b大
if (a[]<b[]) return -;//a的位数小于b则a比b小
for(i=a[];i>;i--) //从高位到低位比较
{ if (a[i]>b[i]) return ;
if (a[i]<b[i]) return -;
}
return ;//各位都相等则两数相等。
} int jian(int a[],int b[])//计算a=a-b
{
int flag,i;
flag=compare(a,b); //调用比较函数判断大小
if (flag==) {a[]=;return ;} //相等
if(flag==) //大于
{
for(i=;i<=a[];i++)
{
if(a[i]<b[i]){ a[i+]--;a[i]+=;} //若不够减则向上借一位
a[i]=a[i]-b[i];
}
while(a[a[]]==) a[]--; //修正a的位数
return ;
}
if (flag==-)//小于 则用a=b-a,返回-1
{
for(i=;i<=b[];i++)
{if(b[i]<a[i]){b[i+]--;b[i]+=;} //若不够减则向上借一位
a[i]=b[i]-a[i];
}
a[]=b[];
while(a[a[]]==) a[]--; //修正a的位数
return -;
}
}
int main()
{
bool signa=false,signb=false;
signa = init(a);
signb = init(b);
if(signa&&signb)
{
jia(a,b);
print(a);
}
else if(!signa&&!signb)
{
jia(a,b);
printf("-");
print(a);
}
else
{
if(jian(a,b)==)
{
if(!signa&&a[])
cout<<'-';
}
else
{
if(!signb&&a[])
cout<<'-';
}
print(a);
}
return ;
}

大数加法

51nod 1005 大数加法的更多相关文章

  1. 大数高精度加减乘除 51nod 1005 大数加法

    1005 大数加法 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题  收藏  关注 给出2个大整数A,B,计算A+B的结果. Input 第1行:大数A 第2行:大数B ...

  2. 51 Nod 1005 大数加法【Java大数乱搞,python大数乱搞】

    1005 大数加法 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 给出2个大整数A,B,计算A+B的结果. Input 第1行:大数A 第2行:大数B (A,B的长度  ...

  3. 【51Nod】1005 大数加法

    给出2个大整数A,B,计算A+B的结果. Input 第1行:大数A 第2行:大数B (A,B的长度 <= 10000 需注意:A B有可能为负数) Output 输出A + B Input示例 ...

  4. 51nod 1005 1027 1029 高精度

    Java大数用法参考:https://www.cnblogs.com/jin-nuo/p/5313205.html 1005 大数加法: import java.util.*; import java ...

  5. 51NOD 1005

    1005 大数加法  基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题  收藏  关注 给出2个大整数A,B,计算A+B的结果.   Input 第1行:大数A 第2行:大 ...

  6. 51NOD 大数加法以及python写法

    练练 大数加法一般为小学生式的"竖式计算"要特别注意的是借位与进位的问题(先给看c++写法,我怕先看了python写法,会看不下去c++写法)这题还有要注意的是 1.同符号的话,直 ...

  7. c#大数加法

    在C#中,我们经常需要表示整数.但是,c#的基本数据类型中,最大的long也只能表示-9,223,372,036,854,775,808 到 9,223,372,036,854,775,807之间的数 ...

  8. 玲珑杯1007-A 八进制大数加法(实现逻辑陷阱与题目套路)

    题目连接:http://www.ifrog.cc/acm/problem/1056 DESCRIPTION Two octal number integers a, b are given, and ...

  9. 51nod 1027大数乘法

    题目链接:51nod 1027大数乘法 直接模板了. #include<cstdio> #include<cstring> using namespace std; ; ; ; ...

随机推荐

  1. EventBus源码解析 源码阅读记录

    EventBus源码阅读记录 repo地址: greenrobot/EventBus EventBus的构造 双重加锁的单例. static volatile EventBus defaultInst ...

  2. iOS AFNetworking内存泄漏处理方法

    iOS AFN内存泄漏处理方法 细心的你是否也发现AFN的内存泄漏的问题了呢. 在这里给大家提供一个解决AFN内存泄漏的方法. 单例解决AFN内存泄漏 + (AFHTTPSessionManager ...

  3. 基于pygtk的linux有道词典

    基于pygtk的linux有道词典 一.桌面词典设计 想把Linux用作桌面系统,其中一部分障碍就是Linux上没有像有道一样简单易用的词典.其实我们完全可以自己开发一款桌面词典, 而且开发一款桌面词 ...

  4. PHP设计模式 迭代器模式

    迭代器模式,在不需要了解内部实现的前提下,遍历一个聚合对象的内部元素.相比于传统的编程模式,迭代器模式可以隐藏遍历元素所需要的操作. AllHacl.php <?php namespace Ba ...

  5. SE_homework1(第一部分)

        题目:写一个能自动生成小学四则运算题目的命令行"软件",分别满足下列各种需求.下面这些需求都可以用命令行参数的形式来指定: a.)除了整数以外,还支持真分数的运算.(例如1 ...

  6. JavaWeb工程中web.xml基本配置

    一.理论准备 先说下我记得xml规则,必须有且只有一个根节点,大小写敏感,标签不嵌套,必须配对. web.xml是不是必须的呢?不是的,只要你不用到里面的配置信息就好了,不过在大型web工程下使用该文 ...

  7. expdp 报The value (30) of MAXTRANS parameter ignored错误的原因诊断

    在使用expdp导出一个表的数据时遇到了下面情况,也不见其提示报错信息,一下子就执行完了,也没有导出我需要的数据 [oracle@getlnx01 dump_dir]$ expdp system/xx ...

  8. winform窗体(一)——基本属性

    一.窗体设计界面 二.部分属性 1.基本 设计中的Name:窗体类的类名 AcceptButton:窗口的确定按钮Enter CancelButton:窗口按ESC的取消按钮 2.外观 Backcol ...

  9. Linux下查找文件:which、whereis、locate、find 命令的区别

    我们经常在linux要查找某个文件,但不知道放在哪里了,可以使用下面的一些命令来搜索.which       查看可执行文件的位置,通过环境变量查whereis    查看文件的位置,通过数据库查,每 ...

  10. iOS实现用控制器作为弹框效果(modalPresentationStyle)

    如图: 中间模块其实为一个正常vc控制器,一般我们present,都是采用默认style 但如果要实现这种,写法如下: navigationC.modalPresentationStyle = UIM ...