Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int foldShift(long long key, int addressSize)
- {
- string str = to_string(key);
- int size = str.length();
- if (size % addressSize == 0)
- {
- int sum = 0;
- for (int i = 0; i < size ; i = i + addressSize)
- {
- string tmp = str.substr(i,addressSize);
- sum = sum + stoi(tmp);
- }
- string tong = to_string(sum);
- int t_size = tong.length();
- string res = "";
- if (t_size >= addressSize) res = tong.substr(t_size-addressSize,addressSize);
- else res = tong;
- return stoi(res);
- }
- int sum = 0;
- int temp = 0;
- for (int i = 0; i < size ; i = i + addressSize)
- {
- if (i + addressSize >= size)
- {
- temp = i;
- break;
- }
- string tmp = str.substr(i,addressSize);
- sum = sum + stoi(tmp);
- }
- string tmp = str.substr(temp,size-temp);
- sum = sum + stoi(tmp);
- string tong = to_string(sum);
- int t_size = tong.length();
- string res = "";
- if (t_size >= addressSize) res = tong.substr(t_size-addressSize,addressSize);
- else res = tong;
- return stoi(res);
- }
- int rotation(long long key, int addressSize)
- {
- string str = to_string(key);
- int size = str.length();
- string res = str.substr(0,size-1);
- res = str.substr(size-1,1) + res;
- long long edited = stol(res);
- int result = foldShift(edited,addressSize);
- return result;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement