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

1、同符号的话,直接加就行,最后再看正负号

2、不同的话则看,两个数的模的大小,在最后判断填补正负号,

AC代码:#include

#include

#include

#include

#include

using namespace std;

const int maxn = 10110;

char ch1[maxn],ch2[maxn];

int a[maxn],b[maxn],p,q,carry;

int c[maxn],car;

bool flag;

void add(int len){//carry=0无进位,=1有进位

for(int i=0;i

int t=a[i]+b[i]+carry;

if(t>=10){

carry=1;

c[i]=t-10;

}

else {

carry=0;

c[i]=t;

}

}

if(carry==1)c[len]=1;

}

int cmp(int l){

for(int i=l-1;i>=0;i--){

if(a[i]==b[i])continue;

if(a[i]>b[i]){

return 1;

}

else {

return -1;

}

}

return 2;

}

int minu(int l1,int l2){//car=0无借位,=1有借位

if(l1==l2){

int r=cmp(l1);

if(r==2){

flag=true;

return 0;

}

else if(r==1){

for(int i=0;i

a[i]-=car;

if(a[i]>=b[i]){

c[i]=a[i]-b[i];

car=0;

}

else{

c[i]=a[i]+10-b[i];

car=1;

}

}

}

else {

for(int i=0;i

b[i]-=car;

if(b[i]>=a[i]){

c[i]=b[i]-a[i];

car=0;

}

else{

c[i]=b[i]+10-a[i];

car=1;

}

}

}

}

else {

if(l1>l2){

for(int i=0;i

a[i]-=car;

if(a[i]>=b[i]){

c[i]=a[i]-b[i];

car=0;

}

else{

c[i]=a[i]+10-b[i];

car=1;

}

}

}

else {

for(int i=0;i

b[i]-=car;

if(b[i]>=a[i]){

c[i]=b[i]-a[i];

car=0;

}

else{

c[i]=b[i]+10-a[i];

car=1;

}

}

}

}

}

int main(){

int len1=0,len2=0,i,j;

memset(a,0,sizeof(a));

memset(b,0,sizeof(b));

memset(c,0,sizeof(c));

cin>>ch1>>ch2;

if(ch1[0]=='-')p=1;

if(ch2[0]=='-')q=1;

for(i=strlen(ch1)-1;i>=p;i--){

a[len1++]=ch1[i]-'0';

}

for(i=strlen(ch2)-1;i>=q;i--){

b[len2++]=ch2[i]-'0';

}

carry=0;

car=0;

flag=false;

int len=max(len1,len2);

if(p==0&&q==0){

add(len);

}

else if(p==1&&q==1){

add(len);

cout<

}

else {

minu(len1,len2);

if(len1>len2&&p==1&&q==0){

cout<

}

else if(len1

cout<

}

else if(len1==len2&&cmp(len1)==1&&p==1&&q==0){

cout<

}

else if(len1==len2&&cmp(len1)==-1&&p==0&&q==1){

cout<

}

}

if(ch1[0]=='0'&&ch2[0]=='0'){

cout<

return 0;

}

if(flag){

cout<

}

if(!carry)len--;

while(len>=0){

if(c[len]!=0)break;

len--;

}//cout<

while(len>=0){

cout<

len--;

}cout<

return 0;

}

上面写的可能有点烦,还没来的及精简,先看着

下面是pythona=int (input());

b=int (input());

print(a+b);是不是感觉被耍了,嘿嘿

python加法怎么写_51NOD 大数加法以及python写法相关推荐

  1. python和易语言写游戏脚本_用Python写王者荣耀刷金币脚本

    王者荣耀很多朋友都想买脚本和挂之类的,想更加容易的获得金币等可以在游戏里买英雄等,今天我们发挥程序员的优势教给大家用Python语言自己写一个可以刷金币的脚本,以下是全部内容. 王者荣耀的冒险模式里有 ...

  2. python在哪里写代码-在哪里编写python代码

    Python常用的编辑器有vim,Eclipse with PyDev,Sublime Text,Emacs, PyCharm, Wing,PyScripter,The Eric Python IDE ...

  3. python导入自己写的模块_大话python模块导入

    对于完成一些简单任务的程序我们编写一个源文件是可以的,但对于稍微复杂点的程序或大型程序时,我们往往需要把这个复杂任务按照一定的规则拆分成多个python文件来实现,最后再把多个文件组合在一起就可以了, ...

  4. python if else写在一行_关于python:将if-elif-else语句放在一行上?

    我已经阅读了下面的链接,但它没有解决我的问题. python是否有三元条件运算符?(问题是将if else语句压缩为一行) 写if-elif-else语句是否有一种更简单的方法,使它适合一行?< ...

  5. python大神写的代码_初学Python,只会写简单的代码。手头有份Python代码,但是调用C模块生成的.pxd和.pyx文件,运行过程总报错,希望大神指点,调试前该做哪些工作呢?...

    报错内容如下: Traceback (most recent call last): File "E:\Python27\setup.py", line 16, in from s ...

  6. python中怎么写注释_Python中注释的写法

    Python中注释的写法 #:使用井号进行单行注释 Python中貌似没有提供多行注释,不过我们可以利用三引号的多行字符串来进行多行注释 """ 多行注释内容 多行注释内 ...

  7. python可以自动写文章吗_让python来告诉你神奇的操作,如何实现文章自动化

    三河讲python 首先来告诉大家下面的Python程序实现了通过从网页抓取一篇文章,然后根据这篇文章来生成新的文章,这其中的原理就是基于概率统计的文本分析. 过程大概就是网页抓取数据->统计分 ...

  8. python伪代码怎么写_将伪代码转换为Python

    我正试图将这个伪代码转换成Python.我不知道怎么做.这看起来很简单,但我对Python一无所知,这使我几乎不可能做到.这是伪代码:Main Module Declare Option Declar ...

  9. python大神写的代码_【python】抄写大神的糗事百科代码

    importurllib.requestimporturllib.parseimportreimporttime#糗事百科爬虫类 classQSBK:#初始化方法,定义一些变量 def __init_ ...

最新文章

  1. Struts2请求参数合法性校验机制
  2. 网站发布问题及使用Web Deployment Projects
  3. java:BufferedReader接受输入进来的2个数字,并将它们相加
  4. 全排列(含递归和非递归的解法)
  5. 第 6 章 Distributed File Systems
  6. 诚邀参加微软.NET俱乐部10月24日Windows 7社区发布会
  7. Qt/C++工作笔记-vector与QVector的拷贝复制(区别与联系)
  8. CentOS上使用Docker安装Redis-Cluster (redis6.x)
  9. 2012-11-25学习笔记
  10. linux java运行环境_linux(centos)中java运行环境_jdk安装与配置 | OPS技术联盟
  11. sot23-6 随机数生成芯片,i2c接口
  12. android 视频标签,android--------WebView实现 Html5 视频标签加载
  13. 联合主键违反唯一性约束_(变强、变秃)Java从零学习024/252数据库之定义约束。...
  14. 网络安全实验3 漏洞扫描
  15. 装饰者模式的应用:react高阶组件和ES6 装饰器
  16. 深度装机大师一键重装_deep深度装机大师一键安装Win10 64位旗舰版
  17. 华医网自动答题小脚本软件,并收集答案保存起来
  18. 【codejam_Round1B_C】Mousetrap
  19. NBA数据的Echarts 数据分析图表
  20. Ubuntu 12.04系统天嵌Linux交叉编译开发工具的安装

热门文章

  1. c语言实现文件数据删除视频,如何用c语言实现删除文件中指定的数据;例如
  2. python实现真正的冒泡排序算法(时间复杂度优化版)!
  3. angular2 php 教程,有关Material在Angular2中的使用(详细教程)
  4. java web html入门书籍,JavaWeb入门到学废的第一天(HTML学习)
  5. vant组件搜索并选择_Vue.js自定义弹层组件|vue仿微信/ios弹窗
  6. linux进程VSZ(虚拟内存)
  7. linux cp指令报错:cp: omitting directory ‘xxx‘(需要加-r递归拷贝)
  8. GPU和显卡是什么关系?GPU会取代CPU吗?GPU和显卡的区别是什么?
  9. Python 自定义函数和参数类型
  10. 后台excel导出(单sheet 多sheet)