A-B 练习【大数减法举例】
A-B
Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^
题目描述
题目链接:http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2102
输入
输出
示例输入
1 3
5 7
示例输出
-2
-2
提示
很明显,这是一道在整型范围内的减法运算,但是网上也找不到有关大数减法的题目,用这道题目抛砖引玉,也勉强凑合~
代码:
#include<iostream>
#include<string.h>
#include<stdlib.h>
using namespace std;
int main()
{
char f1[],g1[];
while(cin>>f1>>g1)
{
int f[]={},g[]={};
int i,j;
int t=strlen(f1),s=strlen(g1);
for(i=t-,j=;i>=;i--,j++)
f[j]=f1[i]-'';
for(i=s-,j=;i>=;i--,j++)
g[j]=g1[i]-'';
int sum[]={},flag=;
int up=;
if((t==s&&strcmp(f1,g1)>=)||t>s)//此处的if else 是大数减法的核心代码
{
for(i=;i<=;i++)
{
if(f[i]>=g[i])
sum[i]=f[i]-g[i];
else
{
sum[i]=f[i]-g[i]+;
f[i+]--;
}
}
}
else
{
flag=;
for(i=;i<=;i++)
{
if(g[i]>=f[i])
sum[i]=g[i]-f[i];
else
{
sum[i]=g[i]-f[i]+;
g[i+]--;
}
}
}
if(strcmp(f1,g1)==)
{
cout<<""<<endl;
continue;
}
if(flag==)
cout<<"-";
for(i=;i>=;i--)
if(sum[i]!=)
{
while(i>=)
{
cout<<sum[i];
i--;
}
break;
}
cout<<endl;
}
return ;
}
A-B 练习【大数减法举例】的更多相关文章
- 大数减法(A - B Problem Plus)问题
解题思路 flagA为0表示A为正整数,为-1表示A为负整数: flagB为0表示B为正整数,为2表示B为负整数: 而 flag = flagA + flagB. 1.当 flag == 0 表示数A ...
- 2016中国大学生程序设计竞赛(长春) Ugly Problem 模拟+大数减法
传送门:http://acm.hdu.edu.cn/showproblem.php?pid=5920 我们的思路是: 对于一个串s,先根据s串前一半复制到后一半构成一个回文串, 如果这个回文串比s小, ...
- 第三周PTA笔记 回文数+A-B(大数减法)+高精度除法+数楼梯(大数加法)
回文数 对于一个自然数n,若将n的各位数字反向排列所得的数n1与n相等,则称n为回文数,例如2332. 若给定一个N( 2<=N<=16)进制数M(M的长度在一百位以内),如果M不是回文数 ...
- POJ 2756 Autumn is a Genius 采用string大数减法
标题意味着小神童.加减可以计算. 只是说这个小神童的学科知识,究竟有多神,自己给自己找. 最后,因为数据是非常非常巨大的,我听说关闭50k结束了50000数字总和,可以想见他神教. 这似乎也是考试题目 ...
- C++大数类模板
友情提示:使用该模板的注意了,在大数减法里有一个小错误,导致减法可能会出错 // 原来的写法,将t1.len错写成了len ] == && t1.len > ) { t1.len ...
- Java的大数操作分为BigInteger和BigDecimal
Java的大数操作分为BigInteger和BigDecimal,但这两给类是分开使用的,有时候在编程的时候显得略微繁琐,现在编写了一个将二者合二为一的大数操作类. 大数操作类代码如下: 1 pack ...
- Java大数操作类
Java的大数操作分为BigInteger和BigDecimal,但这两给类是分开使用的,有时候在编程的时候显得略微繁琐,现在编写了一个将二者合二为一的大数操作类. 大数操作类代码如下: packag ...
- 大数A-B
还没写过大数减法,今天比赛还WA了两次... #include<iostream> #include<string> using namespace std; void sub ...
- Java基础知识【下】( 转载)
http://blog.csdn.net/silentbalanceyh/article/details/4608360 (最终还是决定重新写一份Java基础相关的内容,原来因为在写这一个章节的时候没 ...
随机推荐
- GFF3格式
GFF3是GFF注释文件的新标准.文件中每一行为基因组的一个属性,分为9列,以TAB分开. 依次是: 1. reference sequence:参照序列 指出注释的对象.如一个染色体,克隆或片段.可 ...
- Python自动化之语法基础
1 第一个程序 hello world 在Linux环境下执行 vim hello.py #!/usr/bin/env python #指定解释器 print("hello world&qu ...
- 18.1---不用加号的加法(CC150)
1,自己写的又长又臭的代码,也能AC,但是太丑了.主要是通过二进制来算. public static int addAB(int a, int b){ int res = 0; String str1 ...
- 3.3---集合栈(CC150)
思路:注意一下别写错add还是remove public class SetOfStacks { public static ArrayList<ArrayList<Integer> ...
- centos7 & mysql
首先centos7很坑爹. 其次,在centos7上安装mysql更坑爹. 特此记录一次坑爹历程后的唯一出路. 安装mysql wget http://repo.mysql.com/mysql-com ...
- python 模块之间的变量共享
才疏学浅,只知道两种方式: 1. 通过__builtin__实现: builtin1.py import __builtin__ __builtin__.some_global_var_among_m ...
- C# 基于json通讯中的中文的处理
如果通讯中产生了\\u4e00-\\u9fa5范围的中文的unicode代码,而不是\u4e00-\u9fa5范围的,那么c#的处理就比较麻烦了. 破解方法: 机制 它会把\\u4e00拆成部分来识别 ...
- angulaijs中的ng-upload-file与阿里云oss服务的结合,实现在浏览器端上传文件到阿里云(速度可以达到1.5M)
2015-10-26 angularjs结合aliyun浏览器端oos文件上传加临时身份验证例子 在服务端获取sts 源码: public class StsServiceSample { // 目前 ...
- HDFS原理介绍
HDFS(Hadoop Distributed File System )Hadoop分布式文件系统.是根据google发表的论文翻版的.论文为GFS(Google File System)Googl ...
- Storm集成Kafka应用的开发
我们知道storm的作用主要是进行流式计算,对于源源不断的均匀数据流流入处理是非常有效的,而现实生活中大部分场景并不是均匀的数据流,而是时而多时而少的数据流入,这种情况下显然用批量处理是不合适的,如果 ...