#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. Attempt to insert non-property list object 报错原因

    NSUserDefault 支持的存储类型有:NSString. NSNumber.NSDate. NSArray.NSDictionary.BOOL.NSInteger.NSFloat等系统定义的数 ...

  2. 学习tensorflow之mac上安装tensorflow

    背景 听说谷歌的第二代机器学习的框架tensorflow开源了,我也心血来潮去探探大牛的产品.怎奈安装就折腾了一天,现在整理出来备忘. tensorflow官方网站给出的安装步骤很简单: # Only ...

  3. MVC学习系列2--向Action方法传递参数

    首先,新建一个web项目,新建一个Home控制器,默认的代码如下: public class HomeController : Controller { // GET: Home public Act ...

  4. C++的单例模式与线程安全单例模式(懒汉/饿汉)

    1 教科书里的单例模式 我们都很清楚一个简单的单例模式该怎样去实现:构造函数声明为private或protect防止被外部函数实例化,内部保存一个private static的类指针保存唯一的实例,实 ...

  5. yum安装mysql和mysql源,配置mysql

    申明,不要用root安装 1. 下载mysql的repo源 $ wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm ...

  6. $是对string.Format的简化

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  7. SSDB安装配置记录

    SSDB的性能很突出,与Redis基本相当了,Redis是内存型,容量问题是弱项,并且内存成本太高,SSDB针对这个弱点,使用硬盘存储,使用Google高性能的存储引擎LevelDB,适合大数据量处理 ...

  8. 封装RabbitMQ.NET Library 的一点经验总结

    这篇文章内容会很短,主要是想给大家分享下我最近在做一个简单的rabbitmq客户端类库的封装的经验总结,说是简单其实一点都不简单.为了节省时间我主要按照Library的执行顺序来介绍,在你看来这里仅仅 ...

  9. MongoDB学习笔记~使用原生语句实现三层集合关系的更新

    回到目录 MongoDB的文档型数据结构使得它在存储数据上很像JSON,在可读性方面很强,然而这种复杂的结构在update时相对麻烦一些,而对于官方给出的文档说的也不够细致,有些东西也是模棱两可的态度 ...

  10. OpenSessionInViewFilter配置和作用

    Spring为我们解决Hibernate的Session的关闭与开启问题. Hibernate 允许对关联对象.属性进行延迟加载,但是必须保证延迟加载的操作限于同一个 Hibernate Sessio ...