古代喜剧演员Malidinesia 爱演喜剧而不爱演悲剧。不巧的是,绝大多数古代戏剧都是
悲剧。因此
ACM 戏剧顾问决定把一些悲剧改写成喜剧。显然,这将是一项艰难的工作。
虽然所有内容都可以改成相对的内容,但戏剧的根本首先是要保持意义的完整性。以数字
为例,悲剧中出现数字时,就必须把数字反转。
反转的数字是指把阿拉伯数字反过来。也就是说,数字的第一位变成最后一位,其他
位亦如此。比如,在悲剧中主角有
1245 颗草莓,现在,他就拥有
5421 颗了。注意,所有
的前导零都要被删除。也就是说,如果数字是以
0 结尾的,那么,反转后,
0 就没有了(比
如,
1200 反转后就是
21)。另外,要注意反转数字的尾部不可能还有
0。
ACM 需要计算反转的数字。你的任务是把两个反转的数字相加,并输出它们的和的反
转数。当然,结果不是唯一的,因为任何一个特定的数字都是多个数字反转的形式(比如,
21 可能是
12、
120 或
1200 反转的结果)。因此,我们必须假定在反转的时候不会发生丢
失
0 的情况(例如,假定数字是
12)。
2.输入描述
输入包含 N 个测试案例。输入数据的第一行是一个正整数N。接下去是测试数据。每
个测试案例由一行组成,包括两个正整数,中间用空格隔开。这两个数就是你要进行加法
运算的反转数字。
3.输出描述
对于每个测试案例,一行只打印一个整数——这个数就是两个反转数的和的反转数。
要删除所有的前导零。
4.输入样例
3
24 1
4358 754
305 794
5.输出样例
34
1998
1
#include "stdafx.h"
#include<fstream>
#include<iostream>
#include<vector>
#include<string>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
ifstream in("D:\\visual studio 2013 code\\test.txt");
int num;
string str1, str2, str;
vector<int>v_int;
in >> num;
int a, b, sum;
int flag=0;
for (int i = 0; i < num; i++)
{
in >> str1 >> str2;
//reverse(str1.begin(), str1.end());
//reverse(str2.begin(), str2.end());
//cout << str1 << " " << str2 << endl;
if (str1.size() < str2.size())
{
str = str1;
str1 = str2;
str2 = str;
}
for (int j = 0; j < str1.size(); j++)
{
if (str1[j] == '0') a = 0;
else if (str1[j] == '1')a = 1;
else if (str1[j] == '2')a = 2;
else if (str1[j] == '3')a = 3;
else if (str1[j] == '4')a = 4;
else if (str1[j] == '5')a = 5;
else if (str1[j] == '6')a = 6;
else if (str1[j] == '7')a = 7;
else if (str1[j] == '8')a = 8;
else if (str1[j] == '9')a = 9;
if (j>=str2.size()) b = 0;
else if (str2[j] == '0')b = 0;
else if (str2[j] == '1')b = 1;
else if (str2[j] == '2')b = 2;
else if (str2[j] == '3')b = 3;
else if (str2[j] == '4')b = 4;
else if (str2[j] == '5')b = 5;
else if (str2[j] == '6')b = 6;
else if (str2[j] == '7')b = 7;
else if (str2[j] == '8')b = 8;
else if (str2[j] == '9')b = 9;
sum = a + b + flag;
cout << sum<<endl;
flag = sum / 10;
//sum = sum % 10;
v_int.push_back(sum%10);
//printf("%d", sum);
}
if (flag == 1) v_int.push_back(1);
while (1)
{
vector<int>::iterator it = v_int.end() - 1;
if (*it == 0) v_int.erase(it);
else
break;
}
//vector<int>::iterator it;
for (int k = 0;k<v_int.size();k++)
{
if (v_int[k] != 0) cout << v_int[k];
}
cout << endl;
v_int.clear();
flag = 0;
}
return 0;
}