Advertisement
minh_tran_782

Bai2_Rotate_FoldShift

Nov 14th, 2021 (edited)
190
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.57 KB | None | 0 0
  1. int foldShift(long long key, int addressSize)
  2. {
  3.      string str = to_string(key);
  4.      int size = str.length();
  5.      if (size % addressSize == 0)
  6.      {
  7.          int sum = 0;
  8.          for (int i = 0; i < size ; i = i + addressSize)
  9.          {
  10.              string tmp = str.substr(i,addressSize);
  11.             sum  = sum + stoi(tmp);
  12.          }      
  13.          string tong = to_string(sum);
  14.          int t_size = tong.length();
  15.           string res = "";
  16.          if (t_size >= addressSize) res = tong.substr(t_size-addressSize,addressSize);
  17.          else res = tong;
  18.          return stoi(res);
  19.      }
  20.     int sum = 0;
  21.     int temp = 0;
  22.     for (int i = 0; i < size ; i = i + addressSize)
  23.          {
  24.              if (i + addressSize >= size)
  25.              {
  26.                  temp = i;
  27.                  break;
  28.              }
  29.              string tmp = str.substr(i,addressSize);
  30.             sum  = sum + stoi(tmp);
  31.          }
  32.       string tmp = str.substr(temp,size-temp);
  33.       sum = sum + stoi(tmp);
  34.          string tong = to_string(sum);
  35.          int t_size = tong.length();
  36.          string res = "";
  37.            if (t_size >= addressSize) res = tong.substr(t_size-addressSize,addressSize);
  38.          else res = tong;
  39.          return stoi(res);
  40. }
  41. int rotation(long long key, int addressSize)
  42. {
  43.  
  44.     string str = to_string(key);
  45.     int size = str.length();
  46.     string res = str.substr(0,size-1);
  47.     res = str.substr(size-1,1) + res;
  48.     long long edited = stol(res);
  49.     int result = foldShift(edited,addressSize);
  50.     return result;  
  51. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement