Функция f() - работает с внешними переменными a и b, все остальные переменные в ней не влияют на программу. В ней мы присваиваем переменной b значение переменной а.
Функция g() - работает с внешними переменными a и d, все остальные переменные в ней не влияют на программу. В ней мы присваиваем переменной a результат конкатенации значения переменной d и строки "0".
a b c d
'2' '3' '5' '7'
f() '2' '2' '5' '7'
g() '70' '3' '5' '7'
f() '70' '70' '5' '7'
Выведена будет конкатенация этих строк
"707057"
Если ответ удовлетворил, не забудь отметить его как "Лучший".
#include <iostream>
#include <vector>
using namespace std;
void hanoi(int n, int f, int t) {
if (n == 0) {
return;
}
int v = 6 - f - t;
if (f == t - 1 || (f == 3 && t == 1)){
hanoi(n - 1, f, v);
cout << n << " " << f << " " << t << endl;
hanoi(n - 1, v, t);
}else{
hanoi(n - 1, f, t);
cout << n << " " << f << " " << v << endl;
hanoi(n - 1, t, f);
cout << n << " " << v << " " << t << endl;
hanoi(n - 1, f, t);
}
}
int main (){
int n;
cin >> n;
hanoi(n, 0, 0); //тут какая - то проблема при выводе, я не понял как выводить их. Если вдруг решите проблему, то напишите в комменты под задачей!!
}
Объяснение:
Мне тоже надо , кто сделал "Быстрое возведение в степень" и
"Количество разбиений на слагаемые" отправьте мне решения
Функция f() - работает с внешними переменными a и b, все остальные переменные в ней не влияют на программу. В ней мы присваиваем переменной b значение переменной а.
Функция g() - работает с внешними переменными a и d, все остальные переменные в ней не влияют на программу. В ней мы присваиваем переменной a результат конкатенации значения переменной d и строки "0".
a b c d
'2' '3' '5' '7'
f() '2' '2' '5' '7'
g() '70' '3' '5' '7'
f() '70' '70' '5' '7'
Выведена будет конкатенация этих строк
"707057"
Если ответ удовлетворил, не забудь отметить его как "Лучший".