解题思路:
(1)注意超出整数范围,题目描述不全
#include<iostream>
#include<vector>
#include<cmath>
using namespace std;
long long change(string &s) {
vector<int> v;
int i=0;
string str="";
while(i<s.length()) {
if(isdigit(s[i])) {
while(i<s.length() && s[i]!='.') {
str+=s[i++];
}
v.push_back(stoi(str));
str="";
} else i++;
}
long long sum=0;
for(int i=0;i<v.size();i++) {
sum+=v[i]*pow(256,3-i);
}
return sum;
}
string helper(long long &a) {
string str="";
for(int i=0;i<4;i++) {
str+=to_string((long long)(a/pow(256,3-i)));
a = a%(long long)pow(256,3-i);
str+='.';
}
return str.substr(0,str.length()-1);
}
int main() {
string s="";
long long a=0;
while(cin>>s) {
cin>>a;
cout<<change(s)<<endl;
cout<<helper(a)<<endl;
}
return 0;
}