之前的大数相加存在bug,这个ac通过了
#include <iostream>
#include <string>
/*project:两个大整数相加
**@author:浅滩
**data:2019.05.15
*/ using namespace std;
void add(const string &,const string &);
int main()
{
string str1,str2;
cin>>str1>>str2;
if(str1.size()>=str2.size())//我不知道为什么这莫该就ac通过了,一脸懵逼
add(str1,str2);
else add(str2,str1);
} void add(const string &str1,const string &str2)
{ int *num1=new int [str1.size()];
int *num2=new int [str2.size()];
int result_size;
//const int len=(str1.size()>str2.size()? str1.size():str2.size());
int result[];
fill(result,(result+),);//初始化结果数组 for(int i=;i<str1.size();i++)//字符串到整数数组的转换
num1[i]=str1[i]-'';
for(int i=;i<str2.size();i++)
num2[i]=str2[i]-'';
int s1=str1.size()-,s2=str2.size()-,k=(str1.size()>str2.size()? str1.size():str2.size())-;
cout<<k+;
while(s1>=&&s2>=)
{
result[k]=num1[s1]+num2[s2];
k--;s1--;s2--;
} while(s1>=)
{
result[k]+=num1[s1];
k--;s1--;
}
while(s2>=)
{
result[k]+=num1[s2];
k--;s2--;
}
// cout<<k+1;return;
result_size=(str1.size()>str2.size()? str1.size():str2.size())-;
for(int i=result_size;i>k+;i--)//从后向前进位
{
result[i-]+=result[i]/;
result[i]=result[i]%;
}
//cout<<result_size<<endl;
for(int i=k+;i<=k++result_size;i++)
cout<<result[i];
}
//之前的bug是下面这组测试数据
//456 98949444184
// 9683087243640
//98949444184 456结果不相同
之前的大数相加存在bug,这个ac通过了的更多相关文章
- POJ 1503 Integer Inquiry(大数相加)
一.Description One of the first users of BIT's new supercomputer was Chip Diller. He extended his exp ...
- hdu acm-1047 Integer Inquiry(大数相加)
Integer Inquiry Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)T ...
- 用字符串模拟两个大数相加——java实现
问题: 大数相加不能直接使用基本的int类型,因为int可以表示的整数有限,不能满足大数的要求.可以使用字符串来表示大数,模拟大数相加的过程. 思路: 1.反转两个字符串,便于从低位到高位相加和最高位 ...
- 随机数组&大数相加
随机生成10个数,填充一个数组,然后用消息框显示数组内容,接着计算数组元素的和,将结果也显示在消息框中 一, 设计思路: 先生成随机数数组,再将数组保存在一个字符串中,然后将数组各数字加和, ...
- java-两个大数相加
题目要求:用字符串模拟两个大数相加. 一.使用BigInteger类.BigDecimal类 public static void main(String[] args) { String a=&qu ...
- POJ 1503 Integer Inquiry(大数相加,java)
题目 我要开始练习一些java的简单编程了^v^ import java.io.*; import java.util.*; import java.math.*; public class Main ...
- 杭电ACM(1002) -- A + B Problem II 大数相加 -提交通过
杭电ACM(1002)大数相加 A + B Problem II Problem DescriptionI have a very simple problem for you. Given two ...
- Linux C/C++ 编程练手 --- 大数相加和大数相乘
最近写了一个大数相乘和相加的程序,结果看起来是对的.不过期间的效率可能不是最好的,有些地方也是临时为了解决问题而直接写出来的. 可以大概说一下相乘和相加的解决思路(当然,大数操作基本就是两个字符串的操 ...
- hdu1002大数相加
A + B Problem II Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Tot ...
随机推荐
- javascript中document.getElementsByClassName兼容性封装方法一
var getElmsByClsName = function(className, results) { results = results || []; // 判断浏览器是否支持 getEleme ...
- 防范CSRF(二)
在防范CSRF(一)中使用的是微软默认的设置.在信息安全中默认的往往是最危险的.因此可以考虑更改cookie中默认的名字. 更改默认操作在Global.asax中的Application_Start使 ...
- 记录sql执行顺序
SQL 语句执行顺序为: FROM WHERE GROUP BY HAVING SELECT DISTINCT UNION ORDER BY 关于 SQL 语句的执行顺序,有三个值得我们注意的地方: ...
- 优动漫结合Photoshop怎么画草地?
今天继续技法教学~草地的技法,PS教学~但是很简单,都是默认工具,而且是常用工具VS常用设置.你肯定会学会的! 草地教程,就到这里啦!有兴趣的可以尝试画一画哦,想要Get到更多有关优动漫的信息包括软件 ...
- Kattis - How Many Digits?
How Many Digits? Often times it is sufficient to know the rough size of a number, rather than its ex ...
- 从源码中查看当前android版本
从文件build/core/version_defaults.mk查找PLATFORM_VERSION例如:PLATFORM_VERSION.OPM1 := 8.1.0
- JS自定义功能函数实现动态添加网址参数修改网址参数值
无论是前端开发还是后台设计,很多时候开发人员都需要获取当前或目标网址的相关信息.这个已有现成的内置对象属性可以直接调用了(下面是获取当前页面的参考代码) 复制代码 代码如下: <script t ...
- js 时间戳 中国标准时间 年月日 日期之间的转换
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- Unity2D 小游戏之 RocketMouse
这个小游戏源自这里.这几天闲时捡了点 Unity(很久没有摸它了),顺手将这个小游戏移植到了 Unity5.5.0,除了 Parallax Scrolling 还有点小问题外,其它功能全部完整.部分代 ...
- BZOJ 4817 [SDOI2017]树点涂色 (LCT+线段树维护dfs序)
题目大意:略 涂色方式明显符合$LCT$里$access$操作的性质,相同颜色的节点在一条深度递增的链上 用$LCT$维护一个树上集合就好 因为它维护了树上集合,所以它别的啥都干不了了 发现树是静态的 ...