python加法怎么写_51NOD 大数加法以及python写法
大数加法一般为小学生式的“竖式计算”要特别注意的是借位与进位的问题(先给看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写法相关推荐
- python和易语言写游戏脚本_用Python写王者荣耀刷金币脚本
王者荣耀很多朋友都想买脚本和挂之类的,想更加容易的获得金币等可以在游戏里买英雄等,今天我们发挥程序员的优势教给大家用Python语言自己写一个可以刷金币的脚本,以下是全部内容. 王者荣耀的冒险模式里有 ...
- python在哪里写代码-在哪里编写python代码
Python常用的编辑器有vim,Eclipse with PyDev,Sublime Text,Emacs, PyCharm, Wing,PyScripter,The Eric Python IDE ...
- python导入自己写的模块_大话python模块导入
对于完成一些简单任务的程序我们编写一个源文件是可以的,但对于稍微复杂点的程序或大型程序时,我们往往需要把这个复杂任务按照一定的规则拆分成多个python文件来实现,最后再把多个文件组合在一起就可以了, ...
- python if else写在一行_关于python:将if-elif-else语句放在一行上?
我已经阅读了下面的链接,但它没有解决我的问题. python是否有三元条件运算符?(问题是将if else语句压缩为一行) 写if-elif-else语句是否有一种更简单的方法,使它适合一行?< ...
- python大神写的代码_初学Python,只会写简单的代码。手头有份Python代码,但是调用C模块生成的.pxd和.pyx文件,运行过程总报错,希望大神指点,调试前该做哪些工作呢?...
报错内容如下: Traceback (most recent call last): File "E:\Python27\setup.py", line 16, in from s ...
- python中怎么写注释_Python中注释的写法
Python中注释的写法 #:使用井号进行单行注释 Python中貌似没有提供多行注释,不过我们可以利用三引号的多行字符串来进行多行注释 """ 多行注释内容 多行注释内 ...
- python可以自动写文章吗_让python来告诉你神奇的操作,如何实现文章自动化
三河讲python 首先来告诉大家下面的Python程序实现了通过从网页抓取一篇文章,然后根据这篇文章来生成新的文章,这其中的原理就是基于概率统计的文本分析. 过程大概就是网页抓取数据->统计分 ...
- python伪代码怎么写_将伪代码转换为Python
我正试图将这个伪代码转换成Python.我不知道怎么做.这看起来很简单,但我对Python一无所知,这使我几乎不可能做到.这是伪代码:Main Module Declare Option Declar ...
- python大神写的代码_【python】抄写大神的糗事百科代码
importurllib.requestimporturllib.parseimportreimporttime#糗事百科爬虫类 classQSBK:#初始化方法,定义一些变量 def __init_ ...
最新文章
- Struts2请求参数合法性校验机制
- 网站发布问题及使用Web Deployment Projects
- java:BufferedReader接受输入进来的2个数字,并将它们相加
- 全排列(含递归和非递归的解法)
- 第 6 章 Distributed File Systems
- 诚邀参加微软.NET俱乐部10月24日Windows 7社区发布会
- Qt/C++工作笔记-vector与QVector的拷贝复制(区别与联系)
- CentOS上使用Docker安装Redis-Cluster (redis6.x)
- 2012-11-25学习笔记
- linux java运行环境_linux(centos)中java运行环境_jdk安装与配置 | OPS技术联盟
- sot23-6 随机数生成芯片,i2c接口
- android 视频标签,android--------WebView实现 Html5 视频标签加载
- 联合主键违反唯一性约束_(变强、变秃)Java从零学习024/252数据库之定义约束。...
- 网络安全实验3 漏洞扫描
- 装饰者模式的应用:react高阶组件和ES6 装饰器
- 深度装机大师一键重装_deep深度装机大师一键安装Win10 64位旗舰版
- 华医网自动答题小脚本软件,并收集答案保存起来
- 【codejam_Round1B_C】Mousetrap
- NBA数据的Echarts 数据分析图表
- Ubuntu 12.04系统天嵌Linux交叉编译开发工具的安装
热门文章
- c语言实现文件数据删除视频,如何用c语言实现删除文件中指定的数据;例如
- python实现真正的冒泡排序算法(时间复杂度优化版)!
- angular2 php 教程,有关Material在Angular2中的使用(详细教程)
- java web html入门书籍,JavaWeb入门到学废的第一天(HTML学习)
- vant组件搜索并选择_Vue.js自定义弹层组件|vue仿微信/ios弹窗
- linux进程VSZ(虚拟内存)
- linux cp指令报错:cp: omitting directory ‘xxx‘(需要加-r递归拷贝)
- GPU和显卡是什么关系?GPU会取代CPU吗?GPU和显卡的区别是什么?
- Python 自定义函数和参数类型
- 后台excel导出(单sheet 多sheet)