题目描述

高精度加法,x相当于a+b problem,[b][color=red]不用考虑负数[/color][/b]

输入输出格式

输入格式:

分两行输入a,b<=10^500

输出格式:

输出只有一行,代表A+B的值

输入输出样例

输入样例#1: 复制

1
1

输出样例#1: 复制

2

思路:显而易见是通过数组来模拟,之前写过类似的,直接用了,不过以前写的太差了。

#include<iostream>
#include<algorithm>
#include<string>
#include<cmath>
using namespace std;
int main()
{ //肯定不是最优的,而且还很冗长,是我太菜了
string a, b;
char c[1000]; //这里要用到char,因为我vs过不了,嘤嘤嘤
int t, i, j, lag , m, o = 1, n; //lag是进位,m是c数组的下标,用n赋值为t,下面会解释
//cin >> t;
//n = t;
//while (t--)
//{
cin >> a >> b;
m = 0; lag = 0; //下面会将两个字符串相加一直到其中一个结束,因为位数不一定相等
for (i = a.size() - 1, j = b.size() - 1; i >= 0 && j >= 0; i--, j--)
{ //size函数是计算字符串长度的
c[m] = a[i] + b[j] - 48 + lag; //根据asc码来运算,lag为进位
lag = 0; //赋值0,只有有进位时才为1
if (c[m]>57)
{
c[m] -= 10;
lag = 1;
}
m++;
}
if (a.size() == b.size()) //如果字符串长度相等,证明已经相加结束,只判断最高位是否有进位
{
if (lag) //如果有,那么最高位只会为1
c[m++] = 49;
}
if (a.size()>b.size()) //如果第一个字符串长,那么继续拿进位和第一个字符串相加,
{ //比如说123+9,3与9相加后,1,2要继续和进位相加
if (lag) //两种情况,第一种,有进位
{
for (; i >= 0; i--) //i不用赋初值,因为i即为上次相加的位置
{
c[m] = a[i] + lag;
if (c[m] > 57) //这里应该不难理解
{
c[m] -= 10;
lag = 1;
}
else
lag = 0;
m++;
}
if (lag) //这是最高位计算后,再判断最高位是否有进位
c[m++] = 49;
}
else //第二种情况,没有进位,则保持原值不用再计算
{
for (; i >= 0; i--)
c[m++] = a[i];
}
}
if (a.size()<b.size()) //当第二个字符串位数较多时同上
{
if (lag)
{
for (; j >= 0; j--)
{
c[m] = b[j] + lag;
if (c[m] > 57)
{
c[m] -= 10;
lag = 1;
}
else
lag = 0;
m++;
}
if (lag)
c[m++] = 49;
}
else
{
for (; j >= 0; j--)
c[m++] = b[j];
}
}
//cout << "Case " << o << ":" << endl; //最后要说一下输出,要严格按照题目要求,注意数字间有空格
//cout << a << " + " << b << " = ";
for (i = m - 1; i >= 0; i--)
cout << c[i];
cout << endl; //每组数据最后都要换行,endl就是换行的意思,但每两组数据间要空上一行
//if (o<n) //所以要用到n,假如有3组数据,o初值为1,所以只有为1,2时才空行,即1与2,2与3之间空行
//cout << endl;
//o++;
//}
return 0; //光A题题解就写到12点了,睡觉喽
}

洛谷P1601 A+B Problem(高精)的更多相关文章

  1. 洛谷 P1601 A+B Problem(高精)

    P1601 A+B Problem(高精) 题目背景 无 题目描述 高精度加法,x相当于a+b problem,[b][color=red]不用考虑负数[/color][/b] 输入输出格式 输入格式 ...

  2. 【洛谷P1601 A+B Problem(高精)】

    题目背景 无 题目描述 高精度加法,x相当于a+b problem,[b][color=red]不用考虑负数[/color][/b] 输入输出格式 输入格式: 分两行输入a,b<=10^500 ...

  3. 题解-洛谷P1601 A+B Problem(高精)

    https://www.luogu.org/problemnew/show/P1601(题目传送) 显然数据范围超过了long long类型,故不能简单的用两个长整型存起来相加.这里用到大数据的高精度 ...

  4. 洛谷——P1601 A+B Problem(高精)

    https://www.luogu.org/problem/show?pid=1601#sub 题目背景 无 题目描述 高精度加法,x相当于a+b problem,[b][color=red]不用考虑 ...

  5. Java实现 洛谷 P1601 A+B Problem(高精)

    import java.util.*; import java.math.*; public class Main { public static void main(String args[]) { ...

  6. 洛谷1601 A+B Problem(高精) 解题报告

    洛谷1601 A+B Problem(高精) 本题地址:http://www.luogu.org/problem/show?pid=1601 题目背景 无 题目描述 高精度加法,x相当于a+b pro ...

  7. 洛谷1303 A*B Problem 解题报告

    洛谷1303 A*B Problem 本题地址:http://www.luogu.org/problem/show?pid=1303 题目描述 求两数的积. 输入输出格式 输入格式: 两个数 输出格式 ...

  8. 洛谷1001 A+B Problem

    洛谷1001 A+B Problem 本题地址:http://www.luogu.org/problem/show?pid=1001 题目描述 输入两个整数a,b,输出它们的和(|a|,|b|< ...

  9. 洛谷P1865 A % B Problem

    1.洛谷P1865 A % B Problem 题目背景 题目名称是吸引你点进来的 实际上该题还是很水的 题目描述 区间质数个数 输入输出格式 输入格式: 一行两个整数 询问次数n,范围m 接下来n行 ...

随机推荐

  1. Libs文件夹下的Jar文件为什么不会自己主动放在Android Private Libraries文件夹下

    简而言之:这个问题就是由jar包反复冲突了! 这个问题一開始我出现了一种"自以为是"的答案,在Android Private Libraries文件夹下的是会打包到project可 ...

  2. jQuery Validate 使用

    jQuery Validate 使用 <script src="js/b/js/jquery.validate.js"></script> <styl ...

  3. hdu1285 拓扑排序+优先队列

    原题地址 这算是我个人AC的第一个拓扑排序题目吧. 题目解读 给出几组比赛的胜负情况.推断最后的排名.依据题意这就是一个明显的拓扑排序问题了. 注意 假设由于可能的排名有多种情况,这时要保证编号小的在 ...

  4. python 003 os模块 example

    import os for tmpdir in ('/tmp',r'C:/Users/Administrator/PycharmProjects/'): if os.path.isdir(tmpdir ...

  5. linux(centos)下安装git并上传代码些许步骤(亲自验证过的步骤)

     曾经听说了好多次github,但直到近期才第一次学习使用github来托管自己在linux下的代码! 说实话.我自己在使用的时候从网上查了好多教程.但总认为难以掌握(步骤过于繁琐),自己操作的时候还 ...

  6. oc27--synthesize,省略getset实现

    // // Person.h #import <Foundation/Foundation.h> @interface Person : NSObject { @public int _a ...

  7. 修改input:file样式

    <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...

  8. tflearn中num_epoch含义就是针对所有样本的一次迭代

    In tensorflow get started code: import tensorflow as tf import numpy as np features = [tf.contrib.la ...

  9. B - Is your horseshoe on the other hoof?

    Problem description Valera the Horse is going to the party with friends. He has been following the f ...

  10. centos下使用shell+expect远程登录主机

    # 安装expect yum install expect # 新建脚本文件running #!/usr/bin/expect spawn /usr/bin/ssh root@114.114.114. ...