#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. 第一次react-native项目实践要点总结

    今天完成了我的第一个react-native项目的封包,当然其间各种环境各种坑,同时,成就感也是满满的.这里总结一下使用react-native的一些入门级重要点(不涉及环境).注意:阅读需要语法基础 ...

  2. iOS 大文件断点下载

    iOS 在下载大文件的时候,可能会因为网络或者人为等原因,使得下载中断,那么如何能够进行断点下载呢? // resumeData的文件路径 #define XMGResumeDataFile [[NS ...

  3. git下载指定版本的代码

    1. git fetch https://github.com/angular/angular.js.git v1.5.8 或 2. git pull https://github.com/angul ...

  4. RoundedBitmapDrawable生成圆角图片

    Bitmap src = BitmapFactory.decodeResource(getResources(), imageId); //获取Bitmap图片 RoundedBitmapDrawab ...

  5. iOS 10 推送的简单使用

    首先介绍一下本文涉及到UserNotifications的几个主要类. 其中 [1]UNNotification主要是作为通知delegate方法的参数使用.包含UNNotificationReque ...

  6. 查看mysql数据库版本方法总结

    当你接手某个mysql数据库管理时,首先你需要查看维护的mysql数据库版本:当开发人员问你mysql数据库版本时,而恰好你又遗忘了,那么此时也需要去查看mysql数据库的版本............ ...

  7. Android:使用代理服务器安装SDKs

    在使用Android SDK Manager来安装SDK时,因为google的ip被墙了,所以下载文件时,下载不到. 面对不能访问google的问题,通常有下列方案: 1)修改hosts文件,需要有正 ...

  8. 当 IDENTITY_INSERT 设置为 OFF 时,不能向表 'OrderList' 中的标识列插入显式值

    问题描述:在SQL SERVER 2008中,向数据表中字段插入数据时,会报错,错误如下: 当 IDENTITY_INSERT 设置为 OFF 时,不能向表 'OrderList' 中的标识列插入显式 ...

  9. WIN 下的超动态菜单(三)代码

    WIN 下的超动态菜单(一)简介 WIN 下的超动态菜单(二)用法 WIN 下的超动态菜单(三)代码 作者:黄山松,发表于博客园:http://www.cnblogs.com/tomview/ 超动态 ...

  10. Python urllib2 调试

    #!/usr/bin/env python # coding=utf-8 __author__ = 'zhaoyingnan' import urllib import urllib2 import ...