Advertisement
Guest User

Untitled

a guest
Dec 7th, 2016
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.18 KB | None | 0 0
  1. #include <iostream>
  2. #include <string>
  3. #include <vector>
  4.  
  5. unsigned long long str_to_int(std::string s) {
  6. unsigned long long ans = 0;
  7. for (auto c : s) {
  8. ans = ans * 10 + c - '0';
  9. }
  10. return ans;
  11. }
  12.  
  13. int main() {
  14. /*
  15. std::cout << "ahahah" + 2;
  16. std::string s = "";
  17. std::cout << s;
  18. */
  19. std::string s;
  20. getline(std::cin, s);
  21. if (s.find('.') == s.npos) {
  22. unsigned long long val = str_to_int(s);
  23. for (unsigned long long i = 0; i < 3; i++) {
  24. std::cout << ((val >> (3 * 8)) & ((1 << 8) - 1)) << '.';
  25. val = (val << 8);
  26. }
  27. std::cout << (val >> (3 * 8) & ((1 << 8) - 1));
  28. } else {
  29. std::vector<unsigned long long> values;
  30. unsigned long long ans = 0;
  31. while (s.find('.') != s.npos) {
  32. values.push_back(str_to_int(s.substr(0, s.find('.'))));
  33. s = s.substr(s.find('.') + 1, s.length() - s.find('.') - 1);
  34. }
  35. values.push_back(str_to_int(s));
  36. for (unsigned long long i = 0, p = 256 * 256 * 256; i < values.size(); i++, p /= 256) {
  37. ans += p * values[i];
  38. }
  39. std::cout << ans;
  40. }
  41. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement