ZOJ 2001 Adding Reversed Numbers

来源:互联网 发布:服务器php环境搭建 编辑:程序博客网 时间:2024/04/28 01:39

题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1001

Hint: 由于此题数据比较弱,直接通过string和long long 转换即可得到结果。要注意的一个地方是两数相加完成,

         转换成string后, 要去掉尾部的所有0,再反转字符串,就是 题目的结果。

#include<iostream>#include<fstream>#include<vector>#include<string>#include<map>#include<iterator>#include<algorithm>#include<numeric>#include<cmath>#include<sstream>using namespace std;int main(){    #ifdef ONLINE_JUDGE    #else        freopen("D:\\in.txt", "r", stdin);        freopen("D:\\out.txt", "w", stdout);    #endif // ONLINE_JUDEG        int n(0);        cin >> n;        string str1, str2;//第一个数和第二个数        string str;        long long a(0), b(0),sum(0);//字符串转换成整型后的整数        for (int i = 0; i < n; i++)        {            cin >> str1 >> str2;            reverse(str1.begin(),str1.end());            reverse(str2.begin(), str2.end());            stringstream os;            //用流类stringstream做中间媒介完成基本数据类型与字符串的相互转化            os << str1;            os >> a;            os.clear();            os << str2;            os >> b;            os.clear();            sum = a + b;            os << sum;            os >> str;            os.clear();            int k(0);            while (1)//去掉尾部的所有0            {                k = str.size() - 1;                if ('0' == str[k])                {                    str.erase(k);                }                else                {                    break;                }            }            reverse(str.begin(), str.end());            cout << str << endl;        }        return 0;}


0 0
原创粉丝点击