#include <iostream>
using namespace std;
unsigned long int Rev(unsigned long int x);
int main()
{
unsigned long int a, b;
cout << "Input a natural number A: ";
cin >> a;
cout << "Input a natural number B: ";
cin >> b;
cout << "Rev(Rev(A) + Rev(B)) = " << Rev(Rev(a) + Rev(b));
}
unsigned long int Rev(unsigned long int x) {
unsigned long int numb = 0;
while (x != 0) {
numb = (numb + x % 10) * 10;
x /= 10;
}
return numb / 10;
}
/* Форматирование, скорее всего, не сохранится, поэтому прикрепляю .cpp файл */
считаем смещение по оси x:
4 * ( -2 + 3 + 1 ) = 4 * 2 = 8
считаем смещение по оси y:
4 * ( -4 + 3 - 2 ) = 4 * ( -3) = -12
Получается, после выполнения всех команд смещение от исходной точки составит (8, -12)
Чтобы вернуть исполнителя в исходную точку надо дать такое же по величине, но противоположное по знаку смещение (по каждой из осей), следующей командой:
Сместиться на (-8, 12)