Задачу лучше решать с конца – то есть получать число 1 из числа 434 с командотними 2 отними 3 раздели на 10Первые две команды должны быть командами вычитания 2 (команда №1), после их выполнения мы получим 430. В противном случае после выполнения двух первых команд мы получим 429 или 428 и после выполнения 6 команд наименьшее число, которое можно будет получить – это число 42. Третьей командой (по аналогичным соображениям) должна быть команда №3 «раздели на 10». После ее выполнения получим 43. Далее, рассуждая аналогично, находим три остальные команды. Это будут, соответственно, команда №2 (получим 40), команда №3 (получим 4), команда №2 (получим 1). Таким образом, в новой системе команд программа получения числа 1 из числа 434 – это программа 113232. Значит, искомая программа получения числа 434 из числа 1 в исходной системе – это «обратная программа» - программа 232311.
using namespace std;
int gcd(int a, int b);
int main()
{
freopen("input.txt", "r", stdin);
freopen("output.txt", "w", stdout);
int n;
cin >> n;
for (int i = 0; i < n; ++i)
{
int a, b, c, d;
scanf("%d/%d+%d/%d=", &a, &b, &c, &d);
int num = a * d + b * c;
int den = b * d;
int cur_gcd = gcd(num, den);
num /= cur_gcd;
den /= cur_gcd;
cout << num;
if(den != 1)
cout << '/' << den;
cout << endl;
}
fclose(stdin);
fclose(stdout);
return 0;
}
int gcd(int a, int b)
{
if(a == 0)
return b;
return gcd(b % a, a);
}
отними 3
раздели на 10Первые две команды должны быть командами вычитания 2 (команда №1), после их выполнения мы получим 430. В противном случае после выполнения двух первых команд мы получим 429 или 428 и после выполнения 6 команд наименьшее число, которое можно будет получить – это число 42. Третьей командой (по аналогичным соображениям) должна быть команда №3 «раздели на 10». После ее выполнения получим 43. Далее, рассуждая аналогично, находим три остальные команды. Это будут, соответственно, команда №2 (получим 40), команда №3 (получим 4), команда №2 (получим 1). Таким образом, в новой системе команд программа получения числа 1 из числа 434 – это программа 113232. Значит, искомая программа получения числа 434 из числа 1 в исходной системе – это «обратная программа» - программа 232311.