1.6编程基础之一维数组 11 大整数减法 方法二 
http://noi.openjudge.cn/ch0106/11/

1169:大整数减法
http://ybt.ssoier.cn:8088/problem_show.php?pid=1169


C++有错误的代码:

//program p5_02
/*
第2课  减法神童(subtract)
*/
#include <bits/stdc++.h>
using namespace std;const int maxL=200+10;string s1,s2;
int lena,lenb,lenc;
int a[maxL],b[maxL],c[maxL]; void subtract(int a[],int lena,int b[],int lenb,int c[],int &lenc)
{memset(c,0,sizeof(c));lenc=lena;for(int i=0;i<lenc;++i){c[i]=a[i]-b[i];if(c[i]<0){//向前一位借1 --c[i+1];c[i]+=10;}}//删除前导0 for(; lenc>1 && c[lenc-1]==0;--lenc){;}
}
int main( void )
{cin>>s1>>s2;//1、预处理部分lena=s1.length();lenb=s2.length();//s1所表示的数比S2小的情况 if(lena<lenb || (lena==lenb && s1<s2)) {swap(s1,s2);swap(lena,lenb);cout<<'-';}//存储字符串s1到数组a for(int i=0;i<lena;++i){a[i]=s1[lena-i-1]-'0';}//存储字符串s2到数组b for(int i=0;i<lena;++i){b[i]=s2[lena-i-1]-'0';}subtract(a,lena,b,lenb,c,lenc);for(int i=lenc-1;i>=0;--i){cout<<c[i];}cout<<endl;return 0;
}

C++ AC代码一:

/*
1.6编程基础之一维数组 11 大整数减法 方法二
http://noi.openjudge.cn/ch0106/11/1169:大整数减法
http://ybt.ssoier.cn:8088/problem_show.php?pid=1169C++ 中指针和引用的区别
https://www.runoob.com/w3cnote/cpp-difference-between-pointers-and-references.html浅谈C++中指针和引用的区别
https://www.cnblogs.com/dolphin0520/archive/2011/04/03/2004869.html
*/
#include <bits/stdc++.h>
using namespace std;const int maxL=200+1;string s1,s2;//gets()函数 这个函数尽量不要用 不安全
int lena,lenb,lenc;
int a[maxL],b[maxL],c[maxL]; void subtract(int a[],int lena,int b[],int lenb,int c[],int &lenc)
{memset(c,0,sizeof(c));lenc=lena;for(int i=0;i<lenc;++i){c[i]=(a[i]-b[i]);if( c[i]<0 ){--a[i+1];c[i]+=10;}}//cout<<"lenc="<<lenc<<endl;
}int main( void )
{cin>>s1>>s2;lena=s1.length();lenb=s2.length();//cout<<"lena="<<lena<<<<endl//cout<<lenb<<endl;//s1所表示的数比s2的情况 if(lena<lenb || (lena==lenb && s1<s2)) {swap(s1,s2);swap(lena,lenb);cout<<'-';}/*for(int i=0;i<lena;++i){a[i]=s1[lena-i-1]-'0';}*/for (int i=0;i<=lena-1;i++) a[i]=s1[lena-i-1]-'0';for (int i=0;i<=lenb-1;i++) b[i]=s2[lenb-i-1]-'0';/*for(int i=0;i<lena;++i){b[i]=s2[lena-i-1]-'0';}*/subtract(a,lena,b,lenb,c,lenc);//删除前导0 for(; lenc>1 && c[lenc-1]==0;--lenc);for(int i=lenc-1;i>=0;--i){cout<<c[i];}cout<<endl;return 0;
}

C++ AC代码二:

/*
1.6编程基础之一维数组 11 大整数减法 方法一
http://noi.openjudge.cn/ch0106/11/1169:大整数减法
http://ybt.ssoier.cn:8088/problem_show.php?pid=1169
*/
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int main()
{string a1,b1;//char a1[300],b1[300];int a[300],b[300],c[300],lena,lenb,lenc,i,x;memset(a,0,sizeof(a));memset(b,0,sizeof(b));memset(c,0,sizeof(c));cin>>a1>>b1;  //gets(a1);//gets(b1);    //输入加数与被加数lena=a1.size();lenb=b1.size();for (i=0;i<=lena-1;i++) a[lena-i]=a1[i]-'0';   //加数放入a数组for (i=0;i<=lenb-1;i++) b[lenb-i]=b1[i]-48;    //加数放入b数组i=1;while (i<=lena||i<=lenb){if (a[i]<b[i]){a[i]+=10;      //不够减,那么向高位借1当10a[i+1]--;}c[i]=a[i]-b[i];   //对应位相减i++;}lenc=i;while ((c[lenc]==0)&&(lenc>1)) lenc--;   //最高位的0不输出    for (i=lenc;i>=1;i--) cout<<c[i];               //输出结果cout<<endl;return 0;
} 


python3代码:

"""1.6编程基础之一维数组 11 大整数减法
http://noi.openjudge.cn/ch0106/11/"""a=int(input())b=int(input())print(a-b)

1.6 编程基础之一维数组 11 大整数减法相关推荐

  1. 1.6编程基础之一维数组 10大整数加法

    1.6编程基础之一维数组 10大整数加法 OpenJudge - 10:大整数加法 1168:大整数加法 信息学奥赛一本通(C++版)在线评测系统 P1601 A+B Problem(高精) A+B ...

  2. 1.6 编程基础之一维数组 05 年龄与疾病 python

    http://noi.openjudge.cn/ch0106/05/ """ 1.6 编程基础之一维数组 05 年龄与疾病 http://noi.openjudge.cn ...

  3. 1.6 编程基础之一维数组 03 计算书费 python

    http://noi.openjudge.cn/ch0106/03/ """ 1.6 编程基础之一维数组 03 计算书费 http://noi.openjudge.cn/ ...

  4. 1.6编程基础之一维数组_09向量点积计算

    http://noi.openjudge.cn/ch0106/09/ /* 1.6编程基础之一维数组_09向量点积计算--AC http://noi.openjudge.cn/ch0106/09/ * ...

  5. 1.6编程基础之一维数组_01与指定数字相同的数的个数

    http://noi.openjudge.cn/ch0106/01/ /* 1.6编程基础之一维数组_01与指定数字相同的数的个数 http://noi.openjudge.cn/ch0106/01/ ...

  6. 1.6编程基础之一维数组_04数组逆序重放

    http://noi.openjudge.cn/ch0106/04/ /* 1.6编程基础之一维数组_04数组逆序重放 http://noi.openjudge.cn/ch0106/04/总时间限制: ...

  7. python编程基础之一维数组

    python编程基础之一维数组 石头剪刀布 描述: 石头剪刀布是常见的猜拳游戏. 石头胜剪刀,剪刀胜布,布胜石头. 如果两个人出拳一样,则不分胜负.一天,小A和小B正好在玩石头剪刀布. 已知他们的出拳 ...

  8. 1.13 编程基础之综合应用 47 大整数除法方法 python

    http://noi.openjudge.cn/ch0113/47/ """ 1.13 编程基础之综合应用 47 大整数除法方法一 http://noi.openjudg ...

  9. NOI / 1.6编程基础之一维数组01:与指定数字相同的数的个数

    题目: 输出一个整数序列中与指定数字相同的数的个数. http://noi.openjudge.cn/ch0106/01/ 解题思路: int一个列表,从0到105. int n. 重复输入列表中的数 ...

最新文章

  1. JavaWeb学习总结(九)--JDBC入门
  2. 云计算,拼的就是运维
  3. 字符斜杠是合法常量吗_【面试秘籍】你对String的intern方法了解吗
  4. [渝粤教育] 东南大学 工程热力学 参考 资料
  5. javascript中打印对象显示[object object]_js如何打印object对象
  6. python排序问题_Python简单处理坐标排序问题示例
  7. Atitit 给投资人的回报 目录 1.1. 经济回报(略) 1 2. 精神文化与学术回报 1 2.1. 提升自我 投资人可以在我们的教育体系提升自我学术水平 1 2.2. 对自己感兴趣的学术领
  8. 微信h5开发网页授权-本地如何开发调试?
  9. 18.10.29 POJ 3987 Computer Virus on Planet Pandora(AC自动机+字符串处理)
  10. everedit 格式化json_[原创]Everedit的试用限制绕过
  11. 解析解【闭式解(closed-form solution)】和数值解
  12. 怎么把桌面文件发到计算机文件夹E,怎么把桌面文件默认到d盘
  13. 关于DBC文件的格式解析(DBC文件系列其二)
  14. 宋宝华- KVM最初的2小时(KVM从入门到入不了门)
  15. SpringBoot 入坑(九)Docker (容器路径挂载)resource busy 问题
  16. 发文章,找自己专业学术期刊的“大牛”才好
  17. Linux学习笔记——Linux、命令 01
  18. 使用Python制作一个照片换底色的exe程序文件(详细教程)
  19. 大规模数据集的读存技巧
  20. 计算机在教学中的作用论文开题报告,实验在科学教学中的作用【开题报告+文献综述+毕业论文】...

热门文章

  1. 【Java】随机发牌程序
  2. 面试基础算法及编程 第二弹(链表相关:主要考察指针的应用)
  3. 学习最大流问题推荐几个好的博客
  4. NSA(美国国安局)泄漏Exploit分析
  5. mysql基本常用命令
  6. pptv多屏互动服务怎么删除
  7. Oracle 摘去数据块的面纱
  8. Linux 系统添加静态路由的方法
  9. 百度产品经理vs 腾讯产品经理:技术大牛与小白
  10. 局域网聊天2011记住