您的位置:首页 > 其它

华为2017年机试_反转数字求和

2017-03-25 11:49 246 查看
题目:

反转数字求和。输入“123,456”,反转后求和:321+654=975,输出975。

分析:

输入的是字符串,主要涉及到字符串到数字的转换,反转可用数字求余或字符串的反转。

用到的函数:

getline(cin, str)//输入,以enter结束
str.find(','); //返回逗号的位置
string str1(str, pos, len); //字符串的构造
stoi(str1);  //string to int


#include <string>
#include <iostream>
//#include <sstream>
#include <algorithm>
using namespace std;

void reverse(string& num_s)
{
int first = 0;
int last = num_s.size()-1;
while (first < last)
swap(num_s[first++], num_s[last--]);
}

int reverseadd(string a, string b)
{
reverse(a);
reverse(b);
return stoi(a) + stoi(b);
}

int main()
{
string str;
while (getline(cin, str))
{
int pos = str.find(',');
string s1(str, 0, pos);
string s2(str, pos+1);
int res = reverseadd(s1, s2);
cout << res << endl;
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  string